Perlスクリプトでコマンドライン引数のチェックし、動作条件とを満たす場合の未処理を行う方法を紹介します。
サンプルコード
以下は、2つのコマンドライン引数を必要とするスクリプトのサンプルです。
#!/usr/bin/perl
use strict;
use warnings;
# 引数の数を表示(1)
my $args_count = $#ARGV + 1;
print "引数の総数: $args_count\n";
# 引数が2つ以外の場合は使用方法を表示
if ($args_count != 2) {
die "Usage: $0 arg1 arg2\n";
}
# コマンドライン引数を取得(2)
my $arg1 = $ARGV[0];
my $arg2 = $ARGV[1];
# 引数を表示
print "第1引数: $arg1\n";
print "第2引数: $arg2\n";
(1)コマンドライン引数は配列 @ARGV に格納されています。$#ARGVには、配列の最後の要素のインデックスです。配列のインデックスは0から始まるため、引数の数を表現するために $#ARGV+1 としています。
(2)コマンドライン引数を格納している配列 @ARGV の各要素にアクセスして引数を取り出します。
実行結果
> sample.pl
引数の総数: 0
Usage: sample.pl arg1 arg2
> sample.pl aaa
引数の総数: 1
Usage: sample.pl arg1 arg2
> sample.pl aaa bbb
引数の総数: 2
第1引数: aaa
第2引数: bbb
> sample.pl aaa bbb ccc
引数の総数: 3
Usage: sample.pl arg1 arg2
まとめ
本記事では、Perlスクリプトでコマンドライン引数のチェックし、動作条件とを満たす場合の未処理を行う方法を紹介しました。