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

Perl のプログラムを実行する時に合わせて引数を記述し、プログラム内から引数を取得することが可能です。このようにプログラムの実行時に指定する引数をコマンドライン引数と言います。ここでは Perl のプログラムでコマンドライン引数の取得を行う方法を解説します。

(Last modified: )

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

Perl プログラムを実行するときにコマンドライン引数を指定するには次のように記述します。

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

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

perl sample.pl 90 75

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

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

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

サンプルコード

それでは簡単なサンプルを作成します。

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";
}

テキストエディタでプログラムを記述したあと sample.pl という名前で保存します。(文字コードは UTF-8 です)。コマンドプロンプトを起動し、プログラムを保存したディレクトリへ移動したあとで次のように実行します。

perl sample.pl

次のように実行結果が表示されます。

コマンドライン引数の取得(1)

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

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

コマンドライン引数の取得(2)

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

-- --

Perl のプログラムでコマンドライン引数の取得を行う方法を解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。