내가 받고 있어요 :펄 경고 : 초기화되지 않은 값의 사용에 가입하거나 문자열
"Use of uninitialized value in join or string at ./test_script.pl line 69, <fh> line 91."
이 경고를 생성하는 코드는 여기에 있습니다 : 그것은 "인쇄에서 오는
# Write results of SQL execution to output file
if ([email protected]) { print "\n DB Error : ", [email protected]; exit; }
open(FH, ">$output_file") or
die "\n cannot write to the file $output_file. Check the file permissions";
while(my @row= $sth->fetchrow_array) {
print FH join($delimiter, @row). "\n";
}
.. "join".... "while"블록에 있지만, 그것을 일으키는 원인과 해결 방법에 대해 100 % 확실하지 않습니다.
$ 구분 기호는 이전에 my $ delimiter = "|"로 초기화되었습니다. @row는 이전 줄의 $ sth 연산에서 값을 가져옵니다.
경고의 "< fh> line 91"부분에 표시된 것처럼 @row 값과 관련하여 "타이밍"문제입니까, 아니면 처리중인 실제 SQL 쿼리 파일에 있습니까? 내가 경고를 피할 수있는 방법에 대한 아이디어가 있습니까? BTW, 스크립트가 제대로 작동합니다. 큰 데이터 세트에 많은 양의 경고를 생성하는 각 @row 값에 대해 경고가 생성됩니다 ...
귀하의 검색어는 어떤 모습입니까, 아니면 검색어를 생성 한 코드입니까? – SBH
$ 구분 기호에 값이 있음을 증명하십시오. print 앞에'print '구분 기호 >>> $ delimiter <<< \ n ";' – toolic
추측했다면'@ row'의 열 중 하나가'NULL'입니다. – nandhp