0 perl getopt-long command-line-arguments
假设我要输入2个命令行参数 - 源和目标.GetOptions通过仅检查参数名称的第一个字符而不是完整字符串来允许命令行.如何验证完整的参数字符串而不是仅允许其子字符串传递?
这是一个示例程序:
my ($source,$dest);
GetOptions(
'from=s' => \$source,
'to=s' => \$dest
) or die "Incorrect arguments\n";
Run Code Online (Sandbox Code Playgroud)
它接受以下任何一项:
-from-fro-fr-f
-to
-t但是,我希望它只接受
-from-to如果除了那些完整的词之外的任何东西都通过了
我如何禁止缩写选项?
默认情况下,启用缩写.禁用auto_abbrev.参考 Getopt :: Long:
use warnings;
use strict;
use Getopt::Long qw(:config no_auto_abbrev);
my ($source,$dest);
GetOptions(
'from=s' => \$source,
'to=s' => \$dest
) or die "Incorrect arguements\n";
Run Code Online (Sandbox Code Playgroud)
例如,当-fro传递时,它会消息:
Unknown option: fro
Incorrect arguements
Run Code Online (Sandbox Code Playgroud)