引数を指定してサブルーチンを呼び出す
サブルーチンを呼び出すときに引数を指定することができます。引数として渡された値ははサブルーチンの中で参照することができ、実行する処理の中で利用できます。ここでは Perl のプログラムで引数を指定してサブルーチンを呼び出す方法について解説します。
(Last modified: )
引数を指定してサブルーチンを呼び出す
サブルーチンを呼び出すときに引数を指定して呼び出すことができます。引数を指定してサブルーチンを呼び出すには次の書式を使います。
&サブルーチン名(引数1, 引数2, ...); sub サブルーチン名{ 実行する処理; }
サブルーチンを呼び出すときは &サブルーチン名
で呼び出しますが、引数を指定する場合はサブルーチン名のあとの括弧 ()
の中に引数として指定する値を記述します。複数の引数を指定する場合はカンマ(,)で区切って続けて記述します。
次の例をみてください。
&calcPlus(10, 8); &calcPlus(5, 17); sub calcPlus{ # 実行する処理 }
サブルーチン calcPlus を定義しています。そして引数を指定してサブルーチンを二回呼び出しています。引数は 2 つ指定しており、一回目に呼び出したときは 10 と 8 、二回目に呼び出したときは 5 と 17 を指定しています。
引数を指定して呼び出されたサブルーチンでは、指定された引数の値を取り出すことができます。引数の値は特別な配列変数 $_
の要素に格納されます。 1 番目の引数は $_[0]
、 2 番目の引数は $_[1]
のようにインデックスを指定して取り出すことができます。
では先ほどのサンプルをサブルーチンを使って書き換えてみます。サブルーチンを呼び出す時に、平均を計算したい2つの値を引数としてサブルーチンに渡し、サブルーチン側では渡されてきた引数の値を取り出して平均を計算し表示します。
先ほどの例を少し変更して、引数の値をサブルーチンの中で取り出して利用してみます。
&calcPlus(10, 8); &calcPlus(5, 17); sub calcPlus{ my $result; $result = $_[0] + $_[1]; print "$_[0] + $_[1] = $result です\n"; }
1 番目の引数の値と 2 番目の引数の値を加算した結果を計算し、その結果を画面に出力しています。
このように引数を指定してサブルーチンを呼び出すと、サブルーチンの中で処理を実行するときに使用する値を呼び出すときに指定することができます。
それでは簡単なサンプルを作成します。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; &calcAverage(10, 8); &calcAverage(5, 17); sub calcAverage{ my $ave; $ave = ($_[0] + $_[1]) / 2; print "$_[0] と $_[1] の平均値は $ave です\n"; }
テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。
perl sample.pl
次のように実行結果が表示されます。
異なる引数を指定してサブルーチンを 2 回呼び出しました。
-- --
Perl のプログラムで引数を指定してサブルーチンを呼び出す方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。