構成スクリプトからの引数を処理するために Getopt::Long をセットアップしようとしています。
これが私のスターターです。
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
my $config_file = '';
GetOptions (
'config|c=s' => \$config_file,
'add|a' => \&add_server,
'del|d' => \&del_server,
);
sub add_server {
print "$config_file\n";
}
sub del_server {
# Left blank for now.
}
奇妙なことに、このようなスクリプトを実行すると問題が発生します。
./config.pl -a -c config.xml
オプションは出力されません-c
が、このように実行すると、
./config.pl -c config.xml -a
それは正常に機能します。
その理由は理解できたと思いますが、それは注文の実行に関係していますよね?
問題は、どうすれば修正できるかです。Getopt::Long を @ARGV と組み合わせて使用する必要がありますか?
最終的に、呼び出しているサブルーチンにコマンド ライン引数を渡そうとしています。したがって、サブルーチンが呼び出されたときにサブルーチンに渡す-a or --add
オプションが必要な場合。-c or --config
何か案は?