2004年11月9日火曜日

Perlに関する覚え書き

substrのPerl4と5の動作の違いについて
Perlではsubstrを左辺に持って行って、文字列に文字列を挿入できます。
$str = "0123456789";
substr($str, 4, 0) = " ";
printf "$str\n";
実行結果は、
0123 456789
と4つ目の後に右辺の" "が挿入されます。

この挿入場所のインデックス値を$strのサイズよりも大きくすると、
$str = "0123456789";
substr($str, 20, 0) = " ";
printf "$str\n";

Perl4では何も挿入されずに、
0123456789

Perl5では、
substr outside of string at ./test.pl line 3.
とエラーになって実行が中断されます。

まあ今時Perl4使ってる人いないんだろうけど、古いPerl4で書かれたスクリプトの移植で引っ掛かってしまったのです (-_-;;;

0 件のコメント:

コメントを投稿