Функция Perl GetOptions - PullRequest
       14

Функция Perl GetOptions

0 голосов
/ 18 января 2012

Мой Perl Script извлекает аргумент следующим образом. Есть функция Getoptions для получения аргументов командной строки.

./test.pl  -mode report -writeid 12 13 23......
$rc=GetOptions( 'mode=s' => \$cmdParams{mode}
           ,'writeid:i{1,}' => \@writeid
           ,'h|?|help'  => \$help
          );

Проблема в том, что когда у меня есть буквенно-цифровые символы в опции writeid, это не дает сбоя. Writeid определяется как целое число (i {1,}) и может принимать от 1 до многих значений. Это не сбой, когда у меня есть буквенно-цифровой символ во втором значении. ./test.pl -режим отчета -writeid 12 A3 23 ......

Какой обходной путь я могу сделать?

1 Ответ

2 голосов
/ 18 января 2012

Поскольку вы используете функцию GetOptions, я предполагаю, что вы используете GetOpts :: Long, проблема с "{1,}" одним или несколькими значениями в спецификации параметра заключается в том, что, как только вы успешно сопоставили целое число, вы"удалось".если вы удалили количественную спецификацию и просто выполнили команду «writeid: i» => \ @writeid, перед каждым write_id должен стоять флаг в командной строке, и вы получите состояние ошибки, когда он не сможет выполнить синтаксический анализ.

...