68user's page 掲示板

Prev< No. 101> Next  [最新発言に戻る] [過去ログ一覧]
No. 101 # 68user 1999/01/29 (金) 17:23
>> $SIG{HUP}=$SIG{INT}=$SIG{QUIT}=\&finish;
    $a=$b=$c=100;
    print "$a,$b,$c\n";
の結果は100,100,100となります。つまり$a=100;$b=100;$c=100;と
等価なわけですね。そもそもperlの(Cもそうですが)代入文自体は
値を持っています。
    print $a=100;
の結果は100です。また=(イコール)演算子は右から順に
評価されますので、
    $a=$b=$c=100;

    $a=($b=($c=100));
と等価です。というわけで、
    $a=($b=($c=100));
        ↓$cに100を代入
    $a=($b=100);
        ↓$bに100を代入
    $a=100;
という流れになっているはずです(たぶん)。

シグナルハンドラですが、perl4なら $SIG{HUP}="finish"
ですけど、この書き方では 関数finishが別ファイルにあった
場合(それをrequireやuseで使っている場合)は呼べません。
というわけで、\&finishと書くわけです…と青ラクダ本に
書いてありました(^^;

あとlocalとmyは
    local $local=1;
    my $my=2;
    &f;
    sub f {
        local $local=3;
        my $my=4;
        print "f: \$local=$local\n";
        print "f: \$my=$my\n";
        &g;
    }
    sub g {
        print "g: \$local=$local\n";
        print "g: \$my=$my\n";
    }
実行結果:
    f: $local=3
    f: $my=4
    g: $local=3
    g: $my=2
ということでどうでしょう?

> IEとネスケの互換性の無さにあきれています

DHTMLはわかりませんが、Javascriptを使っていて、
Winでは動くのだろうけど FreeBSD+NetscapeNavigatorでは
エラーが出まくるようなページが たくさんあるので、
こんな変なものには絶対手を付けまいと誓いました(笑)

というわけで僕はJavascript、DHTMLに関しては全くの素人です(^^;

Prev< No. 101> Next  [最新発言に戻る] [過去ログ一覧]