我正在使用Getopt::Long
模块来处理命令行参数。
此模块的典型行为是我们可以传递-f
而不是变量--file
的全名。同时,如果我有另一个命令行变量--find
,并且如果我在命令提示符下仅提供-f
,它将返回错误:
Option f is ambiguous (file, find).
我想知道我们怎样才能抑制这种模棱两可的用法?
提前致谢。
答案 0 :(得分:10)
查看Getopt::Long
文档:
<强> auto_abbrev 强>
允许选项名称缩写为唯一性。默认值已启用 除非已设置环境变量POSIXLY_CORRECT,其中 case auto_abbrev已禁用。
示例:
use strict;
use warnings;
use Getopt::Long qw(:config no_auto_abbrev);
my ( $file, $fish );
GetOptions( "file=s" => \$file, "fish=s" => \$fish );
测试:
$ perl test.pl -fi 24
Unknown option: fi
$ perl test.pl -fis 24
Unknown option: fis
答案 1 :(得分:3)
如果要关闭此自动缩写功能,则必须使用
配置Getopt :: Longuse Getopt::Long qw(:config no_auto_abbrev) ;