2010年12月17日

[ruby-list:47700] ruby 1.9 では Module.constantsで参照できない名前が返ってくる

きしもとです

これって仕様なのでしょうか?
ruby 1.8 と ruby 1.9 で動作が違います。

$ cat hoge.rb
module M;A=1;end
M.module_eval{Module.constants.each{|c|eval c.to_s}}


$ ruby -v hoge.rb
ruby 1.8.7 (2009-12-24 patchlevel 248) [amd64-freebsd8]

$ ruby19 -v hoge.rb
ruby 1.9.3dev (2010-12-16 trunk 30224) [x86_64-freebsd8.2]
hoge.rb:2:in `eval': uninitialized constant Module::A (NameError)
from hoge.rb:2:in `eval'
from hoge.rb:2:in `block (2 levels) in <main>'
from hoge.rb:2:in `each'
from hoge.rb:2:in `block in <main>'
from hoge.rb:2:in `module_eval'
from hoge.rb:2:in `<main>'


投稿者 xml-rpc : 2010年12月17日 08:36
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/100862
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。