1
제목과 같이, 2D 벡터의 두 번째 요소까지 반복을 위해 만들고 싶습니다. 나는 썼다 :2D 벡터의 두 번째 마지막 요소까지 루프를 반복하십시오.
for my $i (0..$#vector) {
for my $j (1..${$vector[$i]}[-2]) {
....
}
}
그러나 그것은 작동하지 않는다. 왜?
제목과 같이, 2D 벡터의 두 번째 요소까지 반복을 위해 만들고 싶습니다. 나는 썼다 :2D 벡터의 두 번째 마지막 요소까지 루프를 반복하십시오.
for my $i (0..$#vector) {
for my $j (1..${$vector[$i]}[-2]) {
....
}
}
그러나 그것은 작동하지 않는다. 왜?
이 :
${$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]) {
....
}
}