悔い改めた Perl 4 のプログラマは、以下に示すリリース 4 とリリース 5 の間 の互換性のない修正点に注意すべきです:
sub SeeYa { die "Hasta la vista, baby!" } $SIG{QUIT} = SeeYa;Perl 4 では、シグナルハンドラを設定しますが、Perl 5 では、実際に関数を呼 び出し、その結果を設定します `!-w' スイッチを使えば、このようなもの を探してくれます。
s'$lhs'$rhs'
では、どちら側でも展開を行なわなくなりました。以前は、
$rhs
は展開しませんでしたが、$lhs
は展開しました。
splice()
の 2 番目の引数と 3 番目の引数が (本に書いてあったように)
リストコンテキストではなく、スカラコンテキストで評価されるようになりまし
た。
shift @list + 20; $n = keys %map + 20;これらがうまく行けば、以下がうまく行きません:
sleep $dormancy + 20;
open FOO || die
は、もはや正しくありません。ファイルハンドルの前
後に括弧が必要です。一時的にサポートされていましたので、このような構文を
使うと致命的ではない (がサプレスできない) 警告が出ます。(訳注: or
演算子を使用することができます。)
goto
することはできません。ちぇっ。
caller()
は呼び元がないとき、スカラコンテキストで偽を返すよ
うになりました。これにより、ライブラリファイルは、自分が require
されたものかを判断できます。
m//g
は状態を正規表現の方にではなく、検索文字列の方に括りつけます。
sort
のサブルーティン名として、reverse
というものは、許さ
れなくなりました。
**
演算子は、単項のマイナスよりも強く結合するようになりました。こ
のように動作するように、ドキュメントに書かれていましたが、そうなっていま
せんでした。
$#array
を小さく設定すると、それ以降の配列の要素を捨てます。
delete()
は tie
された配列の古い値を返すことが保証されませ
ん。この機能は、いくつかのモジュールにとってインプリメントがめんどうだか
らです。
Go to the first, previous, next, last section, table of contents.