我正在运行一个带有很多输入选项的perl脚本,其中一个是:
'errorcode=s{1,}' => \@ecodes,
如果输入的内容与输入不匹配,我会在GetOptions的末尾有一个骰子。但是,如果我输入'--ecode 500',程序就会运行。
为什么剧本不会死?如果我尝试其他类似' - 测试123'那么它会死掉。
答案 0 :(得分:1)
我猜你有一个必要的参数选项,如
"foo=s" => \$foo,
你做了类似
的事情program --foo --ecode 500
将--ecode
放入$foo
,将500
放入@ARGV
。
$ perl -MGetopt::Long -e'
use feature qw( say );
GetOptions("foo=s" => \$foo)
or die "usage\n";
say "ok <$foo> <@ARGV>";
' -- \
--ecode 500
Unknown option: ecode
usage
$ perl -MGetopt::Long -e'
use feature qw( say );
GetOptions("foo=s" => \$foo)
or die "usage\n";
say "ok <$foo> <@ARGV>";
' -- \
--foo --ecode 500
ok <--ecode> <500>