필자에게는 재귀 함수를 실행하는 Perl-Script가 있습니다. 그 안에는 2 차원 배열의 두 요소가 비교됩니다.펄 생성 할 수없는 배열 값의 수정 시도, 첨자 -1
"@data"및 "0"을 시작 값으로 사용하여 루틴을 호출합니다. 먼저 매개 변수를 별도의 2D 배열 "@test"에로드합니다.
그런 다음 배열에 마지막 요소가 하나 인 경우> 요소 만 비교하면>보고 싶습니다. 그리고 이것은 오류가 발생하는 곳입니다. 생성 할 수없는 배열 값의 수정 시도, 첨자 -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");}
오늘 아침에 시도해 본 것은 이상한 일입니다. 그가 짧은 시간 동안 뛰었을 때 다시이 오류 메시지가 나타났습니다. 동적 데이터베이스 항목에 의해 발생할 수있는 오류 배열을 따라 잡지 못했을 수도 있습니다.
당신이 저장하는 배열의 마지막 요소를 사용하고 요소의 수? 'my $ counter = $ _ [- 1]'은 무엇입니까? – Arkadiy
@Arkadiy, 그는 루틴의 '두 번째'주장으로 카운터를 지나가고 있습니다. –
배열에 요소가 하나만 있는지 확인하기 위해 고유 ID가 포함 된 [-1] [1]을 사용하여 test의 마지막 요소를 사용하고 다음 코드에서 중요한 $ puffertime에 값을 전달하십시오. – phips0r