Getopt :: Long缺少参数

时间:2012-07-01 13:01:18

标签: perl getopt-long

我写了一个脚本,需要从用户那里得到一些参数。 在尝试读取我的脚本参数时遇到问题。

脚本可以使-type运行函数为一种文件类型,或者可以获取标记-all以便调用所有文件类型。

my $opt = GetOptions (
    'help|h' => \$help,
    'type=s' => \$type,
    'all'    => \$all,
);

我正在考虑用户可以运行的所有错误选项,并在用户时发现 正在运行myscript.pl -type -all模块将-all读为-type字符串。

有什么优雅的方法可以避免这样的事情吗?

谢谢!

-Yair

2 个答案:

答案 0 :(得分:3)

允许-type-all,但不能同时允许。或者,移除-all选项,如果-type后面跟all,请将其视为您现在正在尝试处理-all

my $opt = GetOptions (
    'help|h' => \$help,
    'type=s' => \$type,
    'all'    => sub { $type = "all"; },
);

答案 1 :(得分:2)

使用'type:s'代替'type=s',-type的值将是可选的。优雅?我不知道,但它很有意思。