DATAとbinding

むぅ。 Kernel::DATAbinding でも保持してないのか。

a.rb:

require 'b'
p [DATA.read, __FILE__]
p eval("[DATA.read, __FILE__]", $b)
__END__
from a

b.rb:

$b = binding
__END__
from b

評価時の __FILE__ に従うことを期待しちゃうかなぁ。うん。