cgi015 「コード整理 サブルーチン」(04/12/06 Mon)
えっとサブルーチンて・・・説明しにくいですが、CGIの中で、ある特定の動作をする部分を
サブルーチンとして書くことで、まぁ整理されてキレイに・・・って感じかなぁ?
☆ サブルーチン sub ☆
#!/usr/local/bin/perl
$temp = 1;
&subtest($temp);
sub subtest {
local($ab) = @_;
$temp = $ab + 2;
}
print "Content-type: text/html\n\n";
print "$temp";
exit;
2行目:変数$tempに1を入れる。
3行目:subtestというサブルーチンの呼びだし。呼び出す時に、おみやげ($temp)を持っていきます。
別に持っていかなくてもいいですが。
5行目:サブルーチンsubtestの開始位置。
6行目:サブルーチン内でしか使えない変数は、local()とする。
で、@_ってのは、おみやげのこと。つまり今は @_ = $temp となっている。
で、local($ab) = @_ とすると、「サブルーチン内でしか使えない$abに$tempを入れる」。
7行目:$temp に $ab + 2 を入れる。$abは$tempが入ってた。つまり1+2となる
で、実行結果は3になるんですが、まぁこんなことのためにサブルーチンあるわけではなく、
使いどころ間違ってますが、まぁわかりやすくというかなんというか。
あとlocalってのは最初にしかついてませんが、これを宣言といい、一度localで書くと、
あとは必要ありませんが、サブルーチンでしか使えないので、最後の出力を
print "$ab";ってすると、実行しても何も表示されません。0すら表示されません。
あくまで、サブルーチン内でしか使えないのです。これをローカル変数といいます。
♪ 結果表示 ♪
3
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||