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;