Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何提取@的子集?_Arrays_Perl_Subset - Fatal编程技术网

Arrays 如何提取@的子集?

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

我有以下功能可以工作。但我不确定提取"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";
}

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)