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

 

★ Top ★

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送