我正在尝试使用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";
}
答案 0 :(得分:2)
Splice删除(或替换)数组中的内容;听起来像你只想使用切片:
my $second_counter = $counter - 1;
my @worker = @a[$max..$second_counter];
但我并不清楚你是在用$ second_counter做你认为的事情。