作者: WATANABE Hirofumi
日時: 2006/3/24(02:48)
わたなべです。

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

これは変数の参照というよりむしろ動的な関数の呼び出しか。

-- 
わたなべひろふみ