作者: davi
日時: 2006/3/23(15:56)
Bruce.さん  <  こん??は でび です

On Thu, 23 Mar 2006 08:58:04 +0900 (JST)
kbk@... (Bruce.) wrote:

> そうです。括弧をつけるなら
> 
>    $dest1 = ($dest2 = $src);
> 
> になります。

なる。

>$src の値を $dest2に代入し、その式の値(つまりは$srcの値であり
>$dest2の値ですが)を$dest1 に代入。となります。

「その式」の値。ははぁ、なるほど。

>print $dest = $src . "world";

ここが面白いですね。
「$src」には既に値が入っているから、こういう動きを
するんですね。

でも、

print $dest = $src . "world";
print "\n";
$src = "hello, ";
print $dest;

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

> たとえば awk では gsub(/hoge/, "fuga", str) のように関数形式で
> その第三引数で置換対象を指定します(省略されたときは$0)。
> 
> 同様に、=~ は 右辺に置かれた式の対象を左辺に置かれたものにする。
> というだけのことです。Perlの中の人は s/src/dest/ を実行するときに
> 置換を行う関数を実行していて、
> 
> > > $dest1 =~ s/%([a-fA-F0-9]{2})/pack('C', hex($1))/eg;
> 
> を、
> 
> gsub(/%([a-fA-F0-9]{2})/, "pack('C', hex($1)", $dest1)
> 
> のように解釈していると考えれば良いのでは。

今までで一番しっくり来ました。すげーわかりやすい。

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

−−−−−−−−−−−−

> あの本は元々わたし一人で書くはずのものでした。

あ〜すみません。監修って言うと、一番偉くて一番名前が
売れていて、そして一番何もやらなかった人のこと、って
いう感覚が根強かったもので。(国語辞典とか、そうでしょ?)
そういえば、理系の論文ではFastAuthorが一番偉いんだよ、
ってのを教えて貰った時にもびっくりしました。

でび  http://homepage1.nifty.com/davi/