子集一个数组

时间:2015-09-04 23:35:10

标签: arrays perl subset

我正在尝试使用splice来获取一个数组,该数组是另一个数组的子集,但有些东西不起作用。以下代码为67的参数对而不是数组splice (1, -3)返回值34 67。为什么呢?

#!/usr/bin/perl

my @a = (99999, 34,67,976,432,99999);
my $length = scalar(@a);

for ($counter = 0; $counter<=$length; $counter++){
    my $max = max(-3 + $counter, 1);
    print "$max\n";
    my $second_counter = -($length - $counter);
    print "$second_counter\n";
    my @worker = splice @a, $max, $second_counter;
    print "@worker\n";
}

1 个答案:

答案 0 :(得分:2)

Splice删除(或替换)数组中的内容;听起来像你只想使用切片:

my $second_counter = $counter - 1;
my @worker = @a[$max..$second_counter];

但我并不清楚你是在用$ second_counter做你认为的事情。