1. ホーム
  2. perl

[解決済み] Perl プログラムにコマンドライン引数を渡すにはどうしたらいいですか?

2022-05-18 03:50:33

質問

Perlスクリプトを作成しています。どのようにコマンドラインパラメータを渡すことができますか?

例を挙げます。

script.pl "string1" "string2"

どのように解決するのですか?

何をしたいかによります。もし、2つの引数を入力ファイルとして使いたいのであれば、そのまま渡して <> を使ってその内容を読み込むことができます。

もし、それらが異なる意味を持つ場合は GetOpt::StdGetOpt::Long を使って簡単に処理することができます。 GetOpt::Std は一文字のスイッチのみをサポートし GetOpt::Long の方がはるかに柔軟です。から GetOpt::Long :

use Getopt::Long;
my $data   = "file.dat";
my $length = 24;
my $verbose;
$result = GetOptions ("length=i" => \$length,    # numeric
                    "file=s"   => \$data,      # string
                    "verbose"  => \$verbose);  # flag

あるいは @ARGV は、すべてのコマンドライン引数を含む特別な変数です。 $ARGV[0] は最初の(つまり "string1" の場合)、そして $ARGV[1] が第二引数です。にアクセスするために特別なモジュールは必要ありません。 @ARGV .