[PHP-users 6378] Re: Perlから PHP の移植で@_が分かりません。

clam php-users@php.gr.jp
Thu, 21 Mar 2002 00:42:41 +0900


お世話になりますclamです。

>
>PHPとperlでのユーザ定義関数の宣言で、引数の渡し方の違いに着目すると、
>理解しやすいのでは?
>
>・PHPの場合
>    function foo ( $a, $b, $c, $d ) { ..... }
>
>・Perlの場合
>    sub foo {
>        ( $a, $b, $c, $d ) = @_;
>    }
>
>これ以上の説明は、PHPではなくPerlの話になりますので、このMLではやめとき
>ます。
>
>
ありがとうございました、なんとなく感じがわかりました。
それからすみませんでした、前後のprint文をコメントアウト
するのを、忘れていた為
$ip_addressが変化する等と勝手に自分で納得したため
結果質問のないようが混乱していました。
print "$ip_address"; #1
my($ip_address) = @_;
print "$ip_address"; #2
としても#2のIPアドレスしか表示されませんでした。
でもこれで私自身の疑問の整理が明確になりました。
なぜ
my($ip_address) = @_;
とするとローカル変数$ip_addressにIPアドレスがセット
されるのでしょうか、と聞きたいところですがこの質問
では、PHPと関係ないので他で調べます。

小泉さんの
Perlの場合
    sub foo {
        ( $a, $b, $c, $d ) = @_;
    }

が有効なヒントになりそうです
ありがとうございました。