1

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

该脚本可以获取-type用于在一种文件类型上运行函数的方法,也可以获取用于在所有文件类型上运行的标志-all

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

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

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

4

2 回答 2

4

允许-type-all,但不能同时允许。或者,删除该-all选项,如果-type后面跟着all,请按照您现在尝试处理的方式处理它-all

my $opt = GetOptions (
    'help|h' => \$help,
    'type=s' => \$type,
    'all'    => sub { $type = "all"; },
);
于 2012-07-01T13:08:31.000 回答
2

使用'type:s'代替'type=s'并且 -type 的值将是可选的。优雅的?我不知道,但它已经腐烂了。

于 2012-07-01T13:11:56.177 回答