Arrays 如何在Perl中为数组指定步长

Arrays 如何在Perl中为数组指定步长,arrays,perl,Arrays,Perl,例如,如何访问具有奇数索引的数组元素: @a=(0,1,2,3,4,5,6,7,8); print "@a[1..7 with step 2]"; 我想要的结果是: 1 3 5 7根据伪代码的精神,这里有一个使用数组切片和grep的选项: my @a = (1, 2, 3, 4, 5, 6, 7, 8); print @a[ grep { ($_ - 1) % 2 } 0 .. $#a ]; greping在数组切片中: map{$\u*2}0..$\a/2(如链接的答

例如,如何访问具有奇数索引的数组元素:

@a=(0,1,2,3,4,5,6,7,8);
print "@a[1..7 with step 2]"; 
我想要的结果是:
1 3 5 7

根据伪代码的精神,这里有一个使用数组切片和
grep
的选项:

my @a = (1, 2, 3, 4, 5, 6, 7, 8);
print @a[ grep { ($_ - 1) % 2 } 0 .. $#a ];

grep
ing在数组切片中:

map{$\u*2}0..$\a/2
(如链接的答案所示)应该比
grep{$\u%2==0}0..$\a
(如下面的答案所示)好,因为它创建的标量是原来的一半。
my @a = (1, 2, 3, 4, 5, 6, 7, 8);
print join " ", @a[ grep { ! ($_ % 2) } 0 .. $#a ];