Sean O'Halpin wrote: > On 7/17/06, Thorben Mueller <dingsi / mistburg.de> wrote: >> Rick Ashton schrieb: >> > Thanks guys >> > >> > But it still doesn't load the file into the current scope as I >> mentioned >> > before. Is there some way to do this? >> > >> > ie: >> > >> > $ echo a=5 > blah.rb >> > $ irb -r blah.rb >> > irb(main):001:0> a >> > NameError: undefined local variable or method `a' for main:Object >> > from (irb):1 >> > >> > >> > Thanks! >> > >> >> Hi Rick, >> >> try eval(File.read('blah.rb')) >> >> ~dingsi >> >> > > eval() won't create local variables - it will update one if it already > exists however: > > $ cat eval-test.rb > a = 42 > $ cat eval-scope.rb > eval(File.read("eval-test.rb")) > p a > $ ruby eval-scope.rb > eval-scope.rb:2: undefined local variable or method `a' for > main:Object (NameError) > > $ cat eval-scope2.rb > a = nil > eval(File.read("eval-test.rb")) > p a > $ ruby eval-scope2.rb > 42 > > > Regards, > Sean > Interestingly, it _does_ work for me within irb: $ cat test.rb puts "hi" a = 1 $ irb irb(main):001:0> eval(File.read('test.rb')) hi => 1 irb(main):002:0> puts a 1 => nil Which I think will work for what the OP wanted? -Justin