From: badboy Date: 2009-02-07T04:17:06+09:00 Subject: Re: eval statement Jonathan Wills schrieb: > Trying to switch a project of mine from python to ruby. Love ruby so > far, but I'm finding that the eval statement is a bit more difficult to > use than python's exec statement. Here is one of the problems I'm > having, RUBY_VERSION=1.9.1 > > a = 1 > eval('a=2') > puts a > > This will print out '2', as I want. However if I remove the first line, > > eval('a=2') > puts a > > r.rb:2:in `
': undefined local variable or method `a' for > main:Object (NameError) > > > Now if in the first case eval can change a variable in its scope, why > can't it also create a variable in that same scope? I may also not be > totally clear on the way ruby handles scoping, which might be part of > what I am having trouble understanding. > > Any help understanding the eval statement would be appreciated. I will > probably have more questions about it, but I'll leave at this for now. > > thanks, > -Jonathan why do you want to use eval? eval is evil and in most cases not needed in Ruby