From: Carlos Date: 2004-05-20T23:39:22+09:00 Subject: Re: variable scope in required files [Dave Baldwin , 2004-05-20 16.08 CEST] > This behaviour has rather surprised me: > > file a.rb > a = 10 > > file b.rb > require "a.rb" > puts a > > dave 123% ruby b.rb > b.rb:2: undefined local variable or method `a' for main:Object > (NameError) > > dave 124% ruby -v > ruby 1.8.1 (2003-10-31) [powerpc-darwin] > > Using $a fixes this but I don't want to do this or I could join the > two files at run time and eval them. > > I didn't expect the scope of a to be private to a.rb and can find no > mention in pickaxe about this. If I'm not mistaken, scopes for local variables are created by files, class/module and method definitions, and blocks. They don't nest, except for blocks. For your problem, you can use a constant, or use 'a=nil; eval(File.read("a.rb")); p a', etc. --