タイトルのように、2Dベクトルの最後から2番目の要素までの反復を作成したいと思います。私はするために書いた:
for my $i (0..$#vector) {
for my $j (1..${$vector[$i]}[-2]) {
....
}
}
しかし、それは機能しません。なんで?
タイトルのように、2Dベクトルの最後から2番目の要素までの反復を作成したいと思います。私はするために書いた:
for my $i (0..$#vector) {
for my $j (1..${$vector[$i]}[-2]) {
....
}
}
しかし、それは機能しません。なんで?
これ:
${$vector[$i]}[-2]
最後から2番目の要素の値を示します。
代わりに、以下を使用してください。
for my $j (1..$#{$vector[$i]}-1) {
最後の要素のインデックスから1を引いたもの。
アルゴリズムで実際にインデックスが必要ない場合は、インデックスでfor
はなく配列要素で使用することを検討してください。
for my $outer_element (@vector) {
for my $inner_element (@{$outer_element}[1..$#$outer_element-1]) {
....
}
}