サブルーチンの呼び出し
サブルーチンを定義したらプログラムの中から呼び出して使用します。サブルーチンを呼び出す時の書式は次の通りです。
&サブルーチン名; sub サブルーチン名{ 実行する処理; }
サブルーチンの呼び出しはアンパサンド(&)の後に呼び出すサブルーチン名を記述します。
サブルーチンの呼び出しが行われると、処理の順序はサブルーチン内へ移動します。
次の例で考えてみます。
print "サブルーチンのテスト¥n"; &hello; print "終了¥n"; sub hello{ print "hello¥n"; }
上記の場合は「&hello;」の処理が実行されサブルーチン内へ処理が移ります。よって「print "hello¥n";」が実行されます。そして呼び出されたサブルーチンのブロック内の処理が全て終了すると、サブルーチンを呼び出した処理の次の処理が実行されます。すなわち「print "終了¥n";」が実行されます。
よって上記のサンプルを実行すると次のような出力結果となります。
サブルーチンのテスト hello 終了
このようにサブルーチンはプログラム中のどこに記述されていたとしても、サブルーチンが呼び出された時点でサブルーチンのブロック内の処理が実行されます。
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; sub hello{ print "hello¥n"; } print "サブルーチンのテスト¥n"; &hello; &bye; print "終了¥n"; sub bye{ print "bye¥n"; }
上記を「test3-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
( Written by Tatsuo Ikura )