Arrays 如何提取@的子集?
我有以下功能可以工作。但我不确定提取"uu"子集的最佳方法是什么。如何以最佳方式从@中提取子集Arrays 如何提取@的子集?,arrays,perl,subset,Arrays,Perl,Subset,我有以下功能可以工作。但我不确定提取"uu"子集的最佳方法是什么。如何以最佳方式从@中提取子集 sub parseheader { my $grps_len = shift; my @grps; for ( my $i = 0; $i < $grps_len; ++$in) { my $x = shift; print "$x\n"; push(@grps, $x); } return join(",", @grps), "\n"; } p
sub parseheader {
my $grps_len = shift;
my @grps;
for ( my $i = 0; $i < $grps_len; ++$in) {
my $x = shift;
print "$x\n";
push(@grps, $x);
}
return join(",", @grps), "\n";
}
print parseheader(3, "a", "b", "c");
使用数组切片:
my @grps = @_[0..($grps_len-1)];
使用数组切片:
my @grps = @_[0..($grps_len-1)];
使用列表或数组切片
sub parseheader { join(",", @_[ 1 .. $_[0] ]) . "\n" }
print parseheader(3, @things);
但我会用
sub take_first { @_[ 1 .. $_[0] ] }
say join ",", take_first(3, @things);
如果要删除返回的图元,可以使用splice
顺便说一下
for (my $i=0; $i < $grps_len; ++$i)
使用列表或数组切片
sub parseheader { join(",", @_[ 1 .. $_[0] ]) . "\n" }
print parseheader(3, @things);
但我会用
sub take_first { @_[ 1 .. $_[0] ] }
say join ",", take_first(3, @things);
如果要删除返回的图元,可以使用splice
顺便说一下
for (my $i=0; $i < $grps_len; ++$i)