コマンドライン引数の取得

広告

perlのプログラムを実行する時に合わせて引数を記述しperlのプログラム内で参照することが可能です。このようにプログラムの実行時に指定する引数をコマンドライン引数と言います。

コマンドライン引数を指定するには次のように記述します。

perl プログラム名 引数1 引数2 ...

コマンドライン引数は複数指定可能です。引数はスペースで区切って続けて記述します。例えば「90」「75」と言う2つの値をコマンドライン引数に指定するには次のように記述します。

perl sample.pl 90 75

コマンドライン引数に記述された値はプログラムの中で参照することが可能です。コマンドライン引数は特別な配列である「@ARGV」の要素として格納されますので、各要素を取り出すことでコマンドライン引数を参照することが可能です。

my $kokugo = $ARGV[0];
my $sansuu = $ARGV[1];

コマンドライン引数を使えば、プログラムを実行する度に指定した値を使ってプログラムを実行することが可能です。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test1-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my ($kokugo, $sansuu);

if (@ARGV == 2){
  my $kokugo = $ARGV[0];
  my $sansuu = $ARGV[1];

  print "国語=$kokugo, 算数=$sansuu¥n";
  if ($kokugo > 75 && $sansuu > 75){
    print "合格です¥n";
  }else{
    print "不合格です¥n";
  }
}else{
  print "引数を2つ指定して下さい¥n";
}

上記を「test1-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

コマンドライン引数の取得

今回のサンプルではコマンドライン引数を2つ使ったサンプルです。そこでまずコマンドライン引数が2つ指定されているかどうかをチェックしています。2つ指定されていない場合はエラー表示を行って終了します。

では次のようにコマンドライン引数を2つ指定してみます。

コマンドライン引数の取得

コマンドライン引数として指定された2つの値を取得し、値の判定を行っています。最初の実行時には不合格、次の実行時には合格となっています。このように同じプログラムを使って実行時に別の値に対して処理を行うことが出来るようになります。

( Written by Tatsuo Ikura )