昨日の件、injectに限らないというコメントを頂いたので実験
a = 0
x = [1,2,3,4,5]
p x.each{|a| a}
p a
本当だ、今まで使っていて問題がなかったのは偶然だったのか。
Ruby-listのアーカイブを読んでいたら、この仕様Ruby1.9系では変わったという話題がありました。試したところ確かに変わってました。やっぱり、こっちの方が良いなぁ
ruby -v
ruby 1.9.1 (2008-12-01 revision 20438) [arm5tel-linux]
-----
a = 0
x = [1,2,3,4,5]
p x.each{|a| a}
p a