你能告诉我,如何将几个参数从命令行传递给Getopt::Long
中的函数?我的问题如下 - 我用以下方式定义选项:
...
my $result = GetOptions('ham=s{2}' => \&hamming_distance);
...
sub hamming_distance {
my @values = @_;
...
}
如果我用选项
调用该程序--ham good wood
我有两次调用子程序hamming distance
,一次是“good”,一次是“wood”,即@_
的值是ham,good
,然后是{{1} }。如何只使用两个参数进行一次调用 - ham,wood
?
答案 0 :(得分:2)
my @ham;
my $result = GetOptions('ham=s{2}' => \@ham)
or usage();
hamming_distance(@ham) if @ham;
答案 1 :(得分:1)
如果您不需要处理程序子例程,则可以简单地创建一个数组:
use warnings;
use strict;
use Getopt::Long;
use Data::Dumper;
my @values;
my $result = GetOptions('ham=s{2}' => \@values);
print Dumper(\@values);
__END__
$VAR1 = [
'good',
'wood'
];
请注意,根据文档,这种数组方法是实验性的。