例えば次のような記述。 #!/usr/bin/ruby module Mod V = "Mod::V" end Class.new do include Mod puts V end これを実行すると、 ./0test.rb:8: uninitialized constant V (NameError) from ./0test.rb:6:in `initialize' from ./0test.rb:6:in `new' from ./0test.rb:6 こんなエラーが出る。 Class.newやModule.newにブロックを渡して無名クラス/モジュールを作った場合、そのブロックの定数のスコープはブロックの外側のスコープになるからだ。 version 1.6.8 以降でブロックが与えられた場合は、定数とクラス変数のスコープも外側のスコープになります。 (Rubyリファレンス) これを