在标题中,我想进行迭代直到2D向量的倒数第二个元素;我写信去做:
for my $i (0..$#vector) {
for my $j (1..${$vector[$i]}[-2]) {
....
}
}
但它不起作用。为什么呢?
答案 0 :(得分:1)
此:
${$vector[$i]}[-2]
为您提供倒数第二个元素的值。
相反,请使用:
for my $j (1..$#{$vector[$i]}-1) {
最后一个元素的索引,减一。
如果您实际上不需要算法中的索引,请考虑在数组元素而不是索引上使用for
:
for my $outer_element (@vector) {
for my $inner_element (@{$outer_element}[1..$#$outer_element-1]) {
....
}
}