再帰関数を実行する Perl スクリプトがあります。その中で、2 次元配列の 2 つの要素を比較します。
2D 配列 "@data" と "0" を開始値としてルーチンを呼び出します。最初に、パラメーターを別の 2D 配列 "@test" に読み込みます。
次に、配列に要素が1つしか含まれていないかどうかを確認したい->最後の要素==最初の要素であるかどうかを比較します。そして、これがエラーが発生する場所です:作成できない配列値の変更が試行されました、添え字-1。
配列値を作成しようとしましたが、配列の末尾から逆方向に数えても、添え字がおそらく負でした。
これはあまり役に立ちませんでした... if-clause "$counter-1" に関係していると確信しています。しかし、私は何を知りません、皆さんが私を助けてくれることを願っています!
routine(@data,0);
sub routine {
my @test #(2d-Array)
my $counter = $_[-1]
for(my $c=0; $_[$c] ne $_[-1]; $c++){
for (my $j=0; $j<13;$j++){ #Each element has 13 other elements
$test[$c][$j] = $_[$c][$j];
}
}
if ($test[$counter-1][1] eq $test[-1][1]{
$puffertime = $test[$counter][4];
}
else{
for (my $l=0; $l<=$counter;$l++){
$puffertime+= $test[$l][4]
}
}
}
#
#
#
if ($puffertime <90){
if($test[$counter][8]==0){
$counter++;
routine(@test,$counter);
}
else{ return (print"false");}
}
else{return (print "true");}
奇妙なことに、今朝試してみたらうまくいきました。しばらく実行した後、彼は再びこのエラーメッセージを思いつきました. 動的なデータベース エントリによって発生する可能性のあるエラー コンスタレーションに追いつかなかった可能性があります。