Perlゼミ(サンプルコードPerl入門)

2008-01-08

コマンドライン引数を処理する方法

  1. Perl
  2. コマンドライン引数

Perlで「コマンドライン引数」を処理する方法を解説します。

「コマンドライン引数」とは

「コマンドライン引数」とは、プログラムを実行するときに、プログラム名に加えて空白区切りで指定できる引数のことです。

たとえば「test.pl」を実行するときに「1」「3」「5」という値を指定したい場合は、次のようにプログラムを呼び出すことができます。

perl test.pl 1 3 5

上記の例は数字ですが文字列でも大丈夫です。

perl test.pl foo bar
コマンドライン引数内で空白を使いたい場合

コマンドライン引数の区切りは空白です。空白を使いたい場合は、クォートを使って、エスケープをする必要があります。

perl test.pl foo "bar baz"

コマンドライン引数の受け取り方

コマンドライン引数は「@ARGV」という特殊変数に代入されています。この特殊変数は、通常の配列と同じように利用することができます。

たとえば、複数の数値がコマンドライン引数として指定された場合は、名前のつけた配列に代入してあげましょう。

my @nums = @ARGV;

リスト代入を使って、引数を受け取ることもできます。

my ($name, $age) = @ARGV;

引数を指定しない「shift関数」を使って@ARGVの先頭の引数を受け取ることができます。

# @ARGVの先頭の値を取得
my $file = shift;

いずれの場合も、「@ARGV」はそのまま使うのではなく、名前のついた変数に格納して使うようにしましょう。

コマンドライン引数の「オプション」を処理する

通常のコマンドライン引数に加えて、「オプション」形式のコマンドライン引数を処理したい場合は、Getopt::Longというモジュールを使うのが簡単です。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証