【Perl】コマンドライン引数チェックと取得のサンプルコード

Perl

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
タイトルとURLをコピーしました