On Wed, 22 Nov 2006, Kristoffer Lawson wrote:
It's probably not desirable but if you think about it, you can see why that is happening. Objects are basically implemented as namespaces (well, at least they were at some point). A method is a proc inside a namespace. Thus a::name is the proc for that method. Now, objects are also commands. Placing it inside the namespace will create, well, the command a::name, thus overriding the method.
OK, I checked and the documentation does actually mention this behaviour so I guess it is desired. Check: