1.9と1.8でのcase文の違い

今日のruby-listで[http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/44769:title=[ruby-list:44769] Ann: Ruby-1.9.0-1 Windowsインストーラパッケージ]というのが流れていたので、会社のパソコンのRubyをアップデート。これで、日本語のファイルも気にせずにあつかえるぜ。

と思っていたんですが、1.8のころに動いていたスクリプトを動かしてみたら、動きませんでした。

僕が書いたわけではないんですが、こんな感じのソース。

hoge = nil

case hoge
when nil : puts "it's nil"
else puts "it's any object"
end

case 文の when 節と評価される式(たぶん説明間違ってますよ)を一行に書くときの区切り文字が:(コロン)になっています。

これを1.8で評価すると

$ ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [universal-darwin9.0]
$ ruby when.rb 
it's nil

と、ちゃんと実行されるんですが、1.9で行うと

$ ./ruby -v
ruby 1.9.0 (2008-02-23 revision 15580) [i686-darwin9.2.0]
$ ./ruby when.rb 
when.rb:6: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n'
when nil : puts "it's nil"
          ^
when.rb:7: syntax error, unexpected keyword_else, expecting $end
else puts "it's any object"
    ^

のように怒られてしまいます。

家帰ってからプログラミングRubyで調べよと思ったのですが、だれかに隠されてしまったようでみあたらない。しょうがないので、google先生に聞いたら、そもそも1.8のころにコロンがつかえるという情報がみつからない。

もともとの使い方が間違いだったのかしら。そして、これ書いた人は、どこでその知識を知ったんだろう。