我正在尝试设置 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
调用子程序时将选项传递给子程序。
有任何想法吗?