Perl 向子例程传递多个参数的Long

Perl 向子例程传递多个参数的Long,perl,getopt-long,Perl,Getopt Long,如何将多个参数从命令行传递到Getopt::Long中的函数?我的问题如下。我用以下方式定义选项: ... my $result = GetOptions('ham=s{2}' => \&hamming_distance); ... sub hamming_distance { my @values = @_; ... } 如果我调用带有选项的程序 --ham good wood 我对子程序hamming distance进行了两次调用,一次调用“good”,一次调用“

如何将多个参数从命令行传递到
Getopt::Long
中的函数?我的问题如下。我用以下方式定义选项:

...

my $result = GetOptions('ham=s{2}' => \&hamming_distance); 

...

sub hamming_distance {
my @values = @_;
...
}
如果我调用带有选项的程序

--ham good wood

我对子程序
hamming distance
进行了两次调用,一次调用“good”,一次调用“wood”,即
@
的值是
ham,good
,然后调用
ham,wood
。如何仅使用两个参数获得一个调用-
ham,good,wood

如果不需要处理程序子例程,可以简单地创建一个数组:

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'
        ];

请注意,根据文档,此数组方法是实验性的。

如果不需要处理程序子例程,可以简单地创建一个数组:

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'
        ];
my @ham;
my $result = GetOptions('ham=s{2}' => \@ham)
   or usage();

hamming_distance(@ham) if @ham;

请注意,根据文档,此数组方法是实验性的。

如果不需要处理程序子例程,可以简单地创建一个数组:

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'
        ];
my @ham;
my $result = GetOptions('ham=s{2}' => \@ham)
   or usage();

hamming_distance(@ham) if @ham;

请注意,根据文档,此数组方法是实验性的。

如果不需要处理程序子例程,可以简单地创建一个数组:

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'
        ];
my @ham;
my $result = GetOptions('ham=s{2}' => \@ham)
   or usage();

hamming_distance(@ham) if @ham;

请注意,根据文档,这种数组方法是实验性的。

这是实验性的,不是数组的使用。
{2}
这是实验性的,不是数组的使用。
{2}
这是实验性的,不是数组的使用。
{2}
这是实验性的,不是数组的使用。
--ham good wood
听起来不像一个选项,所以我想知道为什么它会被实现为一个选项。
--ham good wood
听起来不像一个选项,所以我想知道为什么它会被实现为一个选项。
--ham good wood
听起来不像一个选项,所以我想知道为什么它会被实现为一个。哈姆·古德·伍德听起来不像一个选项,所以我想知道为什么它会被实现为一个选项。当然,这是可行的,我使用了另一种解决方案——只使用一个字符串除以
我的$result=GetOptions('ham=s'=>\&hamming\u距离)
并在
hamming_距离
子例程内拆分值。我只是想,一定有办法,如何直接给函数两个参数。当然,这是可行的,我使用了另一种解决方案-只使用一个字符串除以
我的$result=GetOptions('ham=s'=>\&hamming\u distance)
并在
hamming\u distance
子例程中拆分值。我只是想,一定有办法,如何直接给函数两个参数。当然,这是可行的,我使用了另一种解决方案-只使用一个字符串除以
我的$result=GetOptions('ham=s'=>\&hamming\u distance)
并在
hamming\u distance
子例程中拆分值。我只是想,一定有办法,如何直接给函数两个参数。当然,这是可行的,我使用了另一种解决方案-只使用一个字符串除以
我的$result=GetOptions('ham=s'=>\&hamming\u distance)
并在
hamming\u distance
子例程中拆分值。我只是想,一定有办法,如何直接给函数两个参数。
my @ham;
my $result = GetOptions('ham=s{2}' => \@ham)
   or usage();

hamming_distance(@ham) if @ham;