From: "NAKAMURA, Hiroshi" Date: 2003-10-06T11:51:15+09:00 Subject: [ruby-dev:21510] Re: eval BEGIN/END at runtime なひです。 > From: "Yukihiro Matsumoto" > Sent: Monday, October 06, 2003 11:26 AM > |runtime(ここでは初期のBEGIN群の実行が終わった後)に、 > |eval("BEGIN { p 1 }")とすると、その場で実行されます。 > |eval("END { p 1 }")のほうは、インタプリタ全体の終了時に、 > |規定の順序で実行されます。 > > |これは仕様ということでよいでしょうか。あるいは不定? > > 仕様のつもりです。 了解です。テストに入れておきます。 > * evalのBEGINは、そのevalブロックの中でのBEGINであるのでOK。 > * ENDはプログラム終了時に実行されるものなのでOK。 > って思ったんですが。 いいと思います。evalされる側のコードにとっては、登録したENDは、 いずれにしてもそのevalされたコードが終了した後に(実際は ずいぶん後かもしれない。プログラム終了時)、正しい順序で 実行されるわけですし。