ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

String#eachも動かない@Ruby1.9。

たのしいRuby第二版のp351
このサンプルもエラーになりました。

dirlist = `dir`
dirlist.each{|line|
        if line =~ /.rb$/i
                print line
        end
}

>ruby backquote_sample.rb
backquote_sample.rb:2:in `<main>': undefined method `each' for #<String:0xb86de8
> (NoMethodError)

>

同じくリファレンスマニュアル見るも、特にobsoleteとか載ってないんですが、そんなもんなんですかね。なくなっちゃうことを考えると、Javaのdeprecateとは意味違うみたいですね。
まあ、どんな言語にも互換性の問題はあるでしょうが。
Java5の互換性情報: http://java.sun.com/j2se/1.5.0/ja/compatibility.html
Java6の互換性情報: http://java.sun.com/javase/technologies/compatibility.jsp
ちなみにですが、eachをeach_lineにしたら無事通りました。