我编写了一个脚本,该脚本需要从用户那里获取很少的参数,并且在尝试读取脚本参数时遇到了问题。
脚本可以获取用于在一种文件类型上运行功能的-type
,也可以获取标志-all
以在所有文件类型上运行。
my $opt = GetOptions (
'help|h' => \$help,
'type=s' => \$type,
'all' => \$all,
);
我试图考虑用户可以运行的所有错误选项,并发现当用户运行myscript.pl -type -all
时,模块将-all
读取为-type
字符串。
是否有避免这种情况的优雅方法?
允许-type
或-all
,但不能两者都选。或者,删除-all
选项,如果-type
后接all
,则将其视为您现在尝试处理的-all
。
my $opt = GetOptions (
'help|h' => \$help,
'type=s' => \$type,
'all' => sub { $type = "all"; },
);
使用'type:s'
代替'type=s'
,并且-type的值是可选的。优雅?我不知道,但它充满生命。