Hi,
In message "[ruby-talk:13812] Re: local vars in case"
on 01/04/19, ts <decoux / moulon.inra.fr> 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.