From: matz@... (Yukihiro Matsumoto) Date: 2001-04-19T09:13:01+09:00 Subject: [ruby-talk:13831] Re: local vars in case Hi, In message "[ruby-talk:13812] Re: local vars in case" on 01/04/19, ts writes: | When it find : | | print "a: #{a}\n" # Name Error | | it will the first time compile the part between #{}. Because for this |iteration a was never assigned, it don't exist and ruby resolve it as a |function call. This is why it give an error. That's what's happening. But I feel it's a bug, or at most misfeature. eval() should execute as if the evaluating string is embedded in the code, so that the error in this case is not what I expect. But I found it's pretty hard to fix. It will remain as it is until I reimplement the core in the future version. Sorry. matz.