2013-02-14 3 views
-4

이 오류는 나를 미치게합니다. 나는이 포럼에 대한 많은 토론과 많은 질문을 읽었다. 하지만 제가 시도하는 모든 것은 모든 것을 해결하는 것 같지 않습니다.계속 "명시 적 패키지 이름 필요"오류

나는 엄격가이 내 코드는 모습입니다 : 내가 잘못

my $resultsHash; 

my $exResults = Array of Results 

foreach my $exData (@$separateArray){ 

push (@{ $resultsHash }, $exData); 
push (@{ $resultsHash{$exData} }, @$exResults); 

} 

을 뭐하는 거지? 이 작업을 수행하는 더 좋은 방법이 있습니까?

답변

0

표시하는 코드에서 사용자는 %resultsHash$separateArray을 사용 중이지만 선언하지는 않습니다. 선언하거나 달리 수정하십시오.

$resultsHash/%resultsHash 정확히 무엇을 찾으려고합니까?

업데이트 : 당신은 %의 resultsHash하지 $ resultsHash를 선언 할 같은 소리, 다음을 수행하십시오 대신 푸시의

$resultsHash{$exData} = $exResults 

를?

+0

오 죄송 합니다만,이 블록 앞에 $ separateArray가 선언 되었다면, 반환 된 배열 데이터 집합을 가진 다른 함수 호출이라고 언급 했어야합니다. 하지만 % 결과 해시에 $ exData의 키가 있고 @ $ exResults의 배열이 값이되고 싶습니다. – Samuelitor

1

작성한 내용은 오래 걸리지 않고 Perl이 아닙니다.

당신

use strictuse warnings으로마다 프로그램을 시작하고 사용의 첫 번째 점에서 모든 변수를 선언해야합니다.

은 여러 변수 배열 기준으로서 예를 들어

명령문

push @{ $resultsHash }, $exData 

취급 $resultsHash있다. 그러나

push @{ $resultsHash{$exData} }, @$exResults 

은 별도의 개체이므로 %resultsHash을 사용합니다.

Array of Results은 (는) Perl이 아닙니다. $exResults에서 배열에 대한 참조 인 것처럼 보이지만 어떻게 채워 졌습니까?

코드를 잘 설명하면 우리가 도울 수 있다고 확신합니다.

+0

더 많은 예제를 게시 하겠지만 Array of Results는 msql 데이터베이스에서 $ exResults = self-> GetViewData ($ viewName, $ colName, $ colValue)와 같은 데이터를 가져 오는 하위 함수 호출입니다. 결과는 배열로, – Samuelitor