Consider
def foo
a = "a"
b = 1
p Kernel.local_variables
end
Why doesn't this print anything? I would expect it to print
["a", "b"]
but instead it prints nothing.
···
--
Jos Backus _/ _/_/_/ Sunnyvale, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
jos at catnook.com _/_/ _/_/_/ require 'std/disclaimer'
Jos Backus wrote:
Consider
def foo
a = "a"
b = 1
p Kernel.local_variables
end
Why doesn't this print anything? I would expect it to print
["a", "b"]
but instead it prints nothing.
Which version of ruby and which platform?
It works for me:
···
------------------------------------------
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>irb -v
irb 0.9(02/07/03)
C:\>irb
irb(main):001:0> def foo; a = "a"; b = 1; p Kernel.local_variables; end
=> nil
irb(main):002:0> foo
["a", "b"]
=> nil
irb(main):003:0> exit
C:\>ruby -v
ruby 1.8.2 (2004-06-29) [i386-mswin32]
C:\>
This is with the current ruby from the FreeBSD ports system:
ruby 1.8.2 (2004-07-29) [i386-freebsd6]
It doesn't work with today's HEAD either (just tried it), which is
ruby 1.9.0 (2004-12-16) [i386-freebsd6.0]
I figured with this working it would be possible to fake Python's `vars()',
useful for quick conversions of Python code.
···
On Thu, Dec 16, 2004 at 01:22:13PM +0900, Shashank Date wrote:
It works for me:
------------------------------------------
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>irb -v
irb 0.9(02/07/03)
C:\>irb
irb(main):001:0> def foo; a = "a"; b = 1; p Kernel.local_variables; end
=> nil
irb(main):002:0> foo
["a", "b"]
=> nil
irb(main):003:0> exit
C:\>ruby -v
ruby 1.8.2 (2004-06-29) [i386-mswin32]
C:\>
--
Jos Backus _/ _/_/_/ Sunnyvale, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
jos at catnook.com _/_/ _/_/_/ require 'std/disclaimer'
Hi,
At Thu, 16 Dec 2004 13:43:15 +0900,
Jos Backus wrote in [ruby-talk:123764]:
This is with the current ruby from the FreeBSD ports system:
ruby 1.8.2 (2004-07-29) [i386-freebsd6]
It doesn't work with today's HEAD either (just tried it), which is
ruby 1.9.0 (2004-12-16) [i386-freebsd6.0]
It works for me.
$ ./ruby -v -e '
def foo
a = "a"
b = 1
p Kernel.local_variables
end
foo
'
ruby 1.9.0 (2004-12-16) [i686-linux]
["a", "b"]
···
--
Nobu Nakada
Nevermind, it would help if I called foo, which I wasn't. Duh.
My apologies, especially to Shashank and Nobu, for the noise. Been busy
porting a Python script to Ruby all day. Bad excuse, I know.
···
--
Jos Backus _/ _/_/_/ Sunnyvale, CA
_/ _/ _/
_/ _/_/_/
_/ _/ _/ _/
jos at catnook.com _/_/ _/_/_/ require 'std/disclaimer'