Я выполняю скрипт perl, и мне нужно получить несколько значений из командной строки. Пример:Аргументы командной строки с несколькими значениями
perl script.pl --arg1 op1 op2 op3
Я использую Getopt :: Long, и я могу получить эту работу:
perl script.pl --arg1 op1 --arg1 op2 --arg1 op3
Но мне действительно нужно (хочу) первый вариант.
Я проверил в их документации, и это должен делать то, что я хочу:
GetOptions('arg1=s{3}' => \@myArray);
http://search.cpan.org/~jv/Getopt-Long-2.38/lib/Getopt/Long.pm#Options_with_multiple_values
Но я получаю эту ошибку:
Error in option spec: "arg1=f{3}"
Любые идеи/решения ?
Вам нужна отдельная утилита для аргументов вашего скрипта? Все аргументы, переданные из командной строки, хранятся в массиве $ ARGV.Затем вы можете сортировать и отслеживать их внутри вашего скрипта. источник: http://www.cyberciti.biz/faq/howto-pass-perl-command-line-arguments/ В качестве альтернативы вы можете включить свой один аргумент, и пользователь должен обернуть их в кавычки: perl-скрипт. pl -arg1 «op1 op2 op3» – OrionRogue
Я думал о кавычках и мог бы использовать это, если не найду другого решения. Я знаю, что могу использовать $ ARGV, но у меня много аргументов, и Getopt :: Long действительно помогает отслеживать все и, к сожалению, это изменяет ARGV. – Chris911
Просто идея: может быть, что-то не так с оболочкой. Можете ли вы выполнить некоторую простую отлаженную печать, чтобы быть уверенным, что вы получаете то, что ожидаете от своего сценария? – ArtM