perl中的GetOptions()不验证完整参数名
假设我想输入两个命令行参数-源和目标。 GetOptions允许命令行只检查参数名称的第一个字符而不是完整字符串。 如何验证完整参数字符串,而不是只允许传递其子字符串 下面是一个示例程序:perl中的GetOptions()不验证完整参数名,perl,command-line-arguments,getopt-long,Perl,Command Line Arguments,Getopt Long,假设我想输入两个命令行参数-源和目标。 GetOptions允许命令行只检查参数名称的第一个字符而不是完整字符串。 如何验证完整参数字符串,而不是只允许传递其子字符串 下面是一个示例程序: my ($source,$dest); GetOptions( 'from=s' => \$source, 'to=s' => \$dest ) or die "Incorrect arguments\n"; 它接受以下任何一项: -来自 -fro -fr -f -to -t 然而,我希望它
my ($source,$dest);
GetOptions(
'from=s' => \$source,
'to=s' => \$dest
) or die "Incorrect arguments\n";
它接受以下任何一项:
-来自
-fro
-fr
-f
-to
-t
-来自
-to
Getopt::Long
”:
auto_abbrev
允许选项名称缩写为唯一性。违约
启用,除非环境变量POSIXLY_CORRECT
已
已设置,在这种情况下,“auto_abbrev
”被禁用
默认情况下,缩略语处于启用状态。禁用
auto_abbrev
。参考:
例如,当传递-fro
时,它将随着以下消息消失:
Unknown option: fro
Incorrect arguements
我建议
使用Getopt::longqw(:config posix_default)代码>取而代之;它提供了更健全的默认设置,包括no\u auto\u abbrev
。具体来说,它相当于使用Getopt::Long qw(:config no_auto_abbrev no_Getopt_compat require_order)
,因此不允许使用-fro
,+from
以及混合选项和参数。
Unknown option: fro
Incorrect arguements