わたなべです。
Bruce. <kbk@...> writes:
> > でも、
> >
> > print $dest = $src . "world";
> > print "\n";
> > $src = "hello, ";
> > print $dest;
> >
> > としたら、\nの上の$dest は「空っぽの$src . "world";」
> > となるのはわかりますが、その後で「空っぽ」部分を「hello,」
> > で上書きしているんだから最後のprintはちゃんと出そうな
> > もんですが?
>
> いいところに目をつけてますね。
>
> $destの値が決定するのは、printするときではなくて代入のときです。
> つまり、$srcの値もそのときに取り出して$destの値を設定するのに
> 使っているので、代入後に$srcを操作しても$destには影響しないのです。
そういえば思い出した。
Makefileはなぜか順番は関係なくて、後から代入してもいけたりする。
% cat Makefile
FOO = $(BAR)
BAR = hoge
all:; @echo $(FOO)
% make
hoge
これは変数の参照というよりむしろ動的な関数の呼び出しか。
--
わたなべひろふみ