Rubyのevalの変数の扱い
Rubyでevalを使ったが、変数が定義されていないというエラーが出てはまった。
以下の文を実行すると、p aでエラーが出る。
eval <<EXEC a = 1 EXEC p a
これを実行する前には、aをevalの前で定義しておかないといけない。
a = 0 eval <<EXEC a = 1 EXEC p a
テーブルからRubyのプログラムを取りだして、動的に実行させようと思ったけれど、こういった変数定義がその場でできないのは、辛い。たぶんスコープとして捉えられているのだろう。
ところで、irbではキーから入力したものが動的に反映されていく。こちらでは変数定義も問題ない。
何かヒントがあるのではないか。