1.8からののりかえがキビシー。
まず文字列。string[n]
が
文字コードでなく長さ1の部分文字列になった。
なんだよう。これ教えるときに何でこれだけ文字コードなのかちょと
めんどいなと思ってはいたのだが、だからといって突然変わっちゃうのも
困る。ファイルをバイト列として読み取って、そのどこかの値を
unsigned char で得るときに string[0]
とか
していたのだがこれが使えない。Ruby 1.8 と共存させるにはこうか。
(1.8まで) value = string[0] (1.8+1.9) value = string.unpack("C")[0] (1.8まで) value = string[n] (1.8+1.9) value = string.unpack("C*")[n]
あと、デフォルトのエンコーディングがutf-8になって、euc-jpで 書かれているスクリプトでヒアドキュメントなんかを使うと こける。失敗してもいいから自動判別するとかして欲しい。 マジックコードを使えっていうが、ワンライナーの場合 指定ができない。ruby -Ke とかしても、正規表現オブジェクトが ASCII-8BITにしかならないからこける。困る。
うーん、1.8に戻した。せめて自作プログラムは10〜20年は使いたいのだ。 そうなるともはやCしか選択肢はないのか? Emacs-Lispはバッファとかの 取り扱いのバージョン差異はあるものの、リスト操作とか基本関数は 20年くらい変わってないからまあ偉いよなあ。とはいえスクリプト言語としては 使えないし。awkに戻るか?