From: Daniel Mendler Date: 2009-04-16T01:13:58+09:00 Subject: Instance_eval and constants lookup rules in ruby 1.9 Hi, what happend to the constant lookup rules in ruby 1.9? It seems constants in blocks that are evaluated with instance_eval are looked up only in the evaluating class but not in the scope the block was defined. This works in Ruby 1.8 but not in 1.9: ====================================== class X def run(&block) instance_eval(&block) end end module A I_AM_NOT_FOUND = 666 a = X.new a.run { puts I_AM_NOT_FOUND } end Ruby 1.8 finds the constants only if they are in the scope where the block is defined. Why was this behaviour changed? Daniel