Я пытаюсь настроить 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
передавались в подпрограмму при ее вызове.
Есть идеи?