"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";
}
它是從「打印未來.. 。加入....「行中的」while「塊,但我不確定100%是什麼導致它以及如何糾正它。
$分隔符被初始化爲我的$ delimiter =「|」並且@row從前一行中的$ sth操作獲取它的值。
這是關於@row值的「計時」問題還是它正在處理的實際SQL查詢文件中的某些內容,如警告中的「< fh>第91行」部分所示?關於如何避免警告的任何想法? 順便說一句,該腳本工作正常,它只是產生一個警告,每個@row取值,這將產生大量的數據集拉的警告...
您的查詢看起來像什麼或生成查詢的代碼是什麼? – SBH 2014-11-06 17:40:50
向您自己證明$分隔符有一個值。在打印之前加上這個:'print'delimiter >>> $ delimiter <<< \ n「;' – toolic 2014-11-06 17:41:22
如果我猜測,'@ row'中的一列是'NULL'。 – nandhp 2014-11-06 17:42:01