From: Kalman Noel Date: 2006-09-17T23:26:06+09:00 Subject: Re: irb question 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. Kalman