合計値を返す関数
まず合計を求めるプログラムは以下のように書くことができましたが,今度はこれを関数として別のファイルに保存しておき,それをいつでも使用できるようにしてみましょう。
@dat=(1,2,3,4,5,6,7,8,9,10); $sum=0; for($i=0;$i<10;$i++){ $sum+=$dat[$i]; } print "sum=$sum";
Perlプログラミングでは「パッケージを作る」といいますが,その方法を簡単に説明しておきます。
パッケージを作る際には行の初めにパッケージ名を宣言し,行の終わりに1;と記述しておく必要があります。特に行の終わりに書く1;は忘れやすいので気をつけましょう。
package パッケージ名;
sub 関数名{
}
1;
では実際に合計を求めるプログラムを関数として定義してみます。
-sum関数の定義 ファイル名:sum.pl
package sum; sub sum{ my $sum=0; $n=@_; for($i=0;$i<$n;$i++){ $sum+=$_[$i]; } return($sum); } 1;
-sum関数を使用してみる
@dat=(1,2,3,4,5,6,7,8,9,10); require("C://Perl/function/sum.pl"); #sum.plの読み込み $x=sum::sum(@dat); #sum関数の呼び出し print $x; #xに代入された合計を表示
-出力結果
C:\Perl>sample.pl 55
なお,1つのパッケージの中に複数の関数を定義しておくこともできますが,基本的には1つのパッケージには1つの関数という風にしておいた方が混乱せずに済むと思います。ちなみに私はCドライブの中にあるPerlというフォルダの中にfunctionという名前のフォルダを作成し,その中に自分で定義した関数を入れています。