Why should Kernel.instance_eval not give the same behavior as a method added to the module? Thanks Ralph > R> What am I missing here? > > $_ (like $~) is a local and thread local variable. > > R> irb(main):001:0> $_= "ruby" > R> "ruby" > R> irb(main):002:0> module Kernel ; def upcase ; $_.upcase! ; end ; end > > Inside #upcase $_ is nil because it was never assigned. > > Guy Decoux >