logo

Perl コマンドライン引数

コマンドライン引数は、他の言語と同じ方法で Perl プログラムに送信されます。 @ARGV 配列はコマンド ライン引数を保持します。 「use strict」を使用しても変数を使用する必要はありません。デフォルトでは、この変数は常に存在し、コマンド ラインからの値は自動的にこの変数内に配置されます。スクリプトのコマンドライン引数にアクセスするには、@ARGV 配列から読み取るだけです。

Perl では、 を使用して @ARGV 配列をファイル名として使用できます。 $ARGV には、 から読み取るときの現在のファイルの名前が含まれます。

@ARGV 配列要素

@ARGV 配列は通常の配列と同じように機能します。最初の引数は $ARGV[0]、2 番目の引数は $ARGV[1] になります。


Perl コマンドライン引数の例

コマンドライン引数を出力する簡単な例を見てみましょう。この例では、コマンド ラインからの引数としてユーザー名を使用してウェルカム メッセージを出力します。ユーザーの姓名として 2 つのコマンド ライン引数が必要です。

ステップ1 スクリプトを作成する ようこそ。pl あなたのシステムで。

 #!/usr/bin/perl -w # (1) check for the number of command-line arguments entered $number_args = $#ARGV + 1; if ($number_args != 2) { print 'Wrong entry. Please enter your full name.
'; exit; } # (2) if two command line arguments received, $firstName=$ARGV[0]; $lastName=$ARGV[1]; print 'Welcome $firstName $lastName at JavaTpoint.
'; 

上記のスクリプトでは、まず 2 つのコマンド ライン引数が指定されているかどうかを確認します。そうしないと、間違った入力エラーが発生します。 「はい」の場合、それらの引数はそれぞれ $ARGV[0] および $ARGV[1] として処理されます。

ステップ2 コンソールで次のようにスクリプトを実行します。 perl welcome.pl クリスチャン・グレイ

注: このコマンドを実行する前に、スクリプト welcome.pl が含まれるディレクトリにいることを確認してください。

Perl コマンドライン引数 1

これはコンソールに表示される出力です。

ステップ2 コンソールで次のようにスクリプトを実行します。 perl welcome.pl クリスチャン

ここでは、コマンドラインから引数を 1 つだけ渡します。

Perl コマンドライン引数 2

出力には、1 つの引数を渡したことに対する間違ったエントリ メッセージが表示されます。


ループを使用した Perl コマンドライン引数の例

次に、ループを実行してコマンドライン引数を出力します。この例では、必要なだけ引数を入力できます。

ステップ1 スクリプトを作成する ループ.pl あなたのシステムで。

 #!/usr/bin/perl $get_args = $#ARGV + 1; print 'Total command line arguments received: $get_args
'; foreach $argument (0 .. $#ARGV) { print '$ARGV[$argument]
'; } 

ステップ2 コンソールで次のようにスクリプトを実行します。 perl ループ.pl a b c d e f g h

Perl コマンドライン引数 3

上記の出力を見てください。コマンド ラインで渡された引数の合計も表示されています。ここでは 8 つの引数を渡しています。


Perl Getopt::Long

単純なコマンド ライン オプションは、?s オプションを使用して実行されます。複雑なコマンド ライン オプションは、Getopt::Std および Getopt::Long を使用して実行されます。

Getopt の略 GetOptions 。 @ARGV に指定した設定に基づいて @ARGV のコンテンツを処理します。処理に基づいて true または false の値を返します。

例:

この例では、コマンドラインからユーザーの年齢を取得しています。

 use strict; use warnings; use 5.010; use Getopt::Long qw(GetOptions); my $x; GetOptions('from=s' => $x) or die 'Usage: $0 --from NAME
'; say'According to your age which is $x:'; if ($x >=18) { say 'You are eligible to vote'; } 

変数を宣言しました $x に挿入された値を保存します - から 標準コンソールから。の from=s というコマンドラインパラメータを宣言します - から その後に文字列が付きます。さらに変数 $x にマッピングされます。バックスラッシュ () 変数への参照を渡していることを意味します。

このスクリプトは次のように切り替わります。 このスクリプトを実行する場合にのみ、パラメータ名のように見えるものを渡して、 (-) ただし、このスクリプトでは宣言されていません。

さて、このプログラムを実行してみます。

出力:

Perl コマンドライン引数 4

出力を見てください。コンソールで年齢を入力すると、上記の出力が得られます。