Использование perl Getopt::Long::GetOptions

Я новичок в Perl и хотел использовать Getopt::Long::GetOptions для получения параметров командной строки в сценарии.

У меня есть требование, как это:-

1.) perl script.pl -c <name1> -c <name2> -m <name3> argument

Здесь у нас есть вариант флага "-c" а также "-m" необязательно и "argument" является обязательным.

Может ли кто-нибудь указать правильное использование для GetOptions?

Спасибо Арпит

2 ответа

Решение

Вот пример кода и результат.

https://gist.github.com/kyanny/5634832

Если вы хотите узнать больше о том, как обрабатывать несколько значений, см. Документацию: http://perldoc.perl.org/Getopt/Long.html

Еще одна вещь, Getopt::Long::GetOptions не предоставляет способ обработки обязательных опций. Вы должны проверить, есть ли обязательные опции в @ARGV и поднять Исключения и т. Д. В вашей руке.

От Getopt::Long документация:

GetOptions не возвращает ложный результат, если опция не указана

Вот почему они называются "варианты".

Другими словами, если вы ожидаете обязательный параметр, вам нужно явно проверить его за пределами GetOptions вызов.


Если аргумент должен быть частью @ARGV а не варианты, используйте -- сигнализировать об окончании опций. В приведенном ниже примере скрипт argument с помощью $ARGV[0]:

perl script.pl -c <name1> -c <name2> -m <name3> -- argument
Другие вопросы по тегам