ttp://www.ruby-lang.org/ja/man/?cmd=view;name=ruby+1.9+feature
ふっ、甘い。それは「たまたま」ASCII コードを返してるだけであって Ruby1.9 では既に動かないぞ。
> String#ord という、1文字の文字列に対し、その文字のコードを返すメソッドが追加されました
> string[integer] が 1文字の String を返すようになりました

つまり Ruby1.9 では 'a'[0] は 97 ではなく 'a' を返す
素直に最初から Perl の String#ord 持って来てりゃよかったのに