Perl을 배우려고합니다. 나는 도시로 채워진 배열을 가지고있다. 서브 루틴을 참조하여 배열을 전달하고 출력 할 각 도시를 인쇄하고 싶습니다. 그러나 다음과 같은 문제가 있습니다 :Perl에서 2 차원 배열 액세스
1) 서브 루틴 내 while 루프 전에 각 요소에 액세스 할 수 있습니다. 하지만 while 루프 내 요소에 액세스 할 수 없습니다. 오류 메시지가 표시됩니다.
...
Use of uninitialized value in print at <filename> line 44, <GEN2> line 997 (#1)
Use of uninitialized value in print at <filename> line 44, <GEN2> line 998 (#1)
...
다음 코드가 있습니다. 나는 논평 한 내용을 인쇄하고 무엇을하지 (내 설명이 필요하지 않습니다 코드 ... 잘라하려고) 않습니다 펄 구문이 날 슈퍼 혼란이)
@cities;
#Assume cities is loaded successfully
&loadCities(getFileHandle('cities.txt'), $NUM_CITIES, \@cities);
&printElements(getFileHandle('names.txt'), \@cities);
sub printElements{
my $counter = 0;
my $arraySize = scalar $_[1];
# Prints fine!!!
print @{$_[1][($counter)%$arraySize];
while ((my $line = $_[0]->getline()) && $counter < 1000){
#Doesn't print. Generates the above error
print @{$_[1][($counter)%$arraySize];
$counter += 1;
}
}
2. @ {$ _ [1]} [0]에서 무슨 일이 벌어지고 있는지 이해할 수 없습니다. 그것을 해결하려고 노력합니다.
- 을 $ _ [1], 스칼라 값이 위치 (메모리 어레이의 주소) @
- {...} int로서이 메모리 어드레스에 저장되는 해석의 값을 치료 @ 어레이
- {...}
내가 궤도 오전 X [X], 인덱스 요소를 액세스?
응답 시간을내어 주셔서 감사합니다 Matt – donsiuch