Perl GetOptions函数

时间:2012-01-18 06:16:58

标签: perl perl-module

My 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-mode report -writeid 12 A3 23 ......

我能做的解决方法是什么?

1 个答案:

答案 0 :(得分:2)

当您使用GetOptions函数时,我假设您正在使用GetOpts :: Long,选项规范中的“{1,}”一个或多个数量的问题是,一旦您成功匹配整数, 've'成功了“。如果您删除了定量规范并且只使用'writeid:i'=>运行\ @writeid,每个write_id都必须在命令行上以该标志开头,因此在解析失败时会出现错误状态。