From: ara.t.howard@... Date: 2006-08-02T05:28:40+09:00 Subject: Re: I thought this was the one that worked? On Wed, 2 Aug 2006, Chad Perrin wrote: > On Wed, Aug 02, 2006 at 05:12:02AM +0900, ara.t.howard@noaa.gov wrote: >> On Wed, 2 Aug 2006, Chad Perrin wrote: >>> >>> Wait . . . are you serious? Ruby is using dynamic scope here? Ugh. >> >> no. >> >> def x >> puts a >> end >> >> is __lexical__ scoping. not dynamic. > > It's not lexical scoping if that "a" variable is separate from the "a" > variable in the enclosing scope. yes. it is, because there is no 'a' in the enclosing dynamic scope: harp:~ > cat a.rb a = 42 def m() p a end m harp:~ > ruby a.rb a.rb:4:in `m': undefined local variable or method `a' for main:Object (NameError) from a.rb:6 you have to understand that ruby doesn't always use one method of scoping - sometimes it's dynamic and sometimes it's lexical. -a -- we can never obtain peace in the outer world until we make peace with ourselves. - h.h. the 14th dali lama