作者: Bruce.
日時: 2006/3/23(17:32)
Bruce.です。

davi writes:

> でも、
> 
> print $dest = $src . "world";
> print "\n";
> $src = "hello, ";
> print $dest;
> 
> としたら、\nの上の$dest は「空っぽの$src . "world";」
> となるのはわかりますが、その後で「空っぽ」部分を「hello,」
> で上書きしているんだから最後のprintはちゃんと出そうな
> もんですが?

いいところに目をつけてますね。

$destの値が決定するのは、printするときではなくて代入のときです。
つまり、$srcの値もそのときに取り出して$destの値を設定するのに
使っているので、代入後に$srcを操作しても$destには影響しないのです。

> awkの$0のように存在する「何か」(でもこれは比喩
> だから、Perlの $_ とは違うんですよね?)を暗黙に
> 想定してゆけば良いのですね。

$_ でいいんですよ。

色々な操作でそうなんですが、対象を指定せずにs///を使った場合には
$_が操作の対象になるようなルールになっています。

これがPerlの便利な点でもあり嫌われる元でもあり。

いじょ。