I’ve got a question about ‘eval’. In the following example (which doesn’t
work by the way) where does ‘val’ live?
class MyClass
def tryIt( str )
eval str
p val
end
end
a = MyClass.new
a.tryIt( “val = 10” )
I was initially thinking that ‘val’ would be treated as a local to ‘tryIt’.
Maybe ‘eval’ works a little differently to how I thought it might?
···
–
Justin Johnson.
It’s local to the scope of the string being eval’d. Try this:
class MyClass
def tryIt( str )
val = eval str
p val
end
end
a = MyClass.new
a.tryIt( “val = 10” )
Tom.
···
I’ve got a question about ‘eval’. In the following example (which doesn’t
work by the way) where does ‘val’ live?
class MyClass
def tryIt( str )
eval str
p val
end
end
a = MyClass.new
a.tryIt( “val = 10” )
I was initially thinking that ‘val’ would be treated as a local to ‘tryIt’.
Maybe ‘eval’ works a little differently to how I thought it might?
–
.^. .-------------------------------------------------------.
/V\ | Tom Gilbert, London, England | http://linuxbrit.co.uk |
/( )\ | Open Source/UNIX consultant | tom@linuxbrit.co.uk |
^^-^^ `-------------------------------------------------------’
I see. Thanks.
Is there anyway other way to create locals without explicitly setting them?
···
–
Justin Johnson.
“Tom Gilbert” tom@linuxbrit.co.uk wrote in message
news:20020724113537.GR6415@offended.co.uk…
I’ve got a question about ‘eval’. In the following example (which
doesn’t
work by the way) where does ‘val’ live?
class MyClass
def tryIt( str )
eval str
p val
end
end
a = MyClass.new
a.tryIt( “val = 10” )
I was initially thinking that ‘val’ would be treated as a local to
‘tryIt’.
Maybe ‘eval’ works a little differently to how I thought it might?
It’s local to the scope of the string being eval’d. Try this:
class MyClass
def tryIt( str )
val = eval str
p val
end
end
a = MyClass.new
a.tryIt( “val = 10” )
Tom.
.^. .-------------------------------------------------------.
/V\ | Tom Gilbert, London, England | http://linuxbrit.co.uk |
/( )\ | Open Source/UNIX consultant | tom@linuxbrit.co.uk |
^^-^^ `-------------------------------------------------------’