Kalman Noel schrieb:
> Rand Waltzman:
>> def hello
>> 	puts "hello there"
>> end
>> [...]
>> Another interesting phenomenon occurs if I type "hello = 42" to the 
>> interpreter, i.e., I try to rebind hello.  That seems to work fine as 
>> well.  If I type hello, I get 42 as expected.  However, if I try to 
>> reenter the definition of hello as I had it in the original file and try 
>> typing hello again, I still get 42.  The question is, why didn't it 
>> allow me to rebind hello?
> 
> In Ruby, methods and local variables live in different parts of the world.
> The current object can have a method with the same name as a local
> variable. In such cases, the interpreter supposes that the programmer
> forgot about the method and wants the variable.

Note also, that you can still call the method, if there are parentheses 
or parameters passed to the method:

   def a; "method"; end
   a = "local variable"

   puts a   # => local variable
   puts a() # => method

Regards,
Pit