プログラムを機能的に分割して処理を行うルーチンを「サブルーチン」と呼びます。引数&test_sub(500); exit; sub test_sub { print "呼び出し側から受け取った引数は $_[0] です<BR>\n"; print "引数に500を足して返しますぅ<BR>\n"; return $_[0] + 500; }サブルーチンは、sub サブルーチン名 { ・・・ } で定義します。これは定義だけで、このままだと、サブルーチンが呼び出されることはありません。
実際にサブルーチンを呼び出す場合、
&test_sub(500); と、サブルーチン名に &(アンパサンド)をつけて呼び出します。
サブルーチンに、引数を渡すことができます。
$ret = &test_sub(5, 4, 3);
print "$ret\n";
exit;
sub test_sub {
print "$_[0], $_[1], $_[2]\n";
}
サブルーチンの引数は、@_ という特殊な配列に格納されます。引数を(5,4,3)としてサブルーチンを呼び出した場合、@_ の内容は $_[0] は5、$_[1] は4、$_[2] は3 となります。
戻り値
サブルーチンから値を戻すことができます。参照渡し$ret = &test_sub(5, 4, 3); print "$ret\n"; exit; sub test_sub { return $_[0] + $_[1] + $_[2]; }サブルーチンから値を戻すには、return を使用します。呼び出し側で戻り値を取得する場合、
$ret = &test_sub(5, 4, 3) のように、戻り値を格納する変数を設定して呼び出します。