From: Jonathan Wills Date: 2009-02-07T03:52:51+09:00 Subject: eval statement 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 -- Posted via http://www.ruby-forum.com/.