我一直在使用創建的文件:閱讀在Perl新線
open OUT, ">$outfile";
print OUT "$file_in;$system_in;$symbol_in;$price_in\n";
後來試圖從這個文件讀取:
open DATAIN, "<", "$outfile" or die $!;
while(<DATAIN>)
{
chomp($_);
my @ld = split(/\;/,$_);
my $system = $ld[1];
my $file = $ld[0];
...
print "HELLOOO?$file\t$system\..";
}
,但在第一次迭代中,它給了我這個錯誤:
Can't use an undefined value as an ARRAY reference
的問題是真的是在\ n 與我創建的文件中的新線路,我想之後閱讀。
我試過用\ r,錯誤不存在,但是它全部讀爲一行。
請幫忙嗎?提前感謝!
全碼:
open OUT, ">$outfile";
print OUT "$file_in;$system_in;$symbol_in;$price_in\n";
open my $fh, "<", "$outfile" or die $!;
while(<$fh>)
{
chomp;
my @ld = split(/\;/);
my $system = $ld[1];
my $file = $ld[0];
my $symbol = $ld[2];
my $price = $ld[3];
my $key = $file . $symbol;
print "HELLOOO?$file\t$system\t$symbol\t$price\n"
}
錯誤:
Can't use an undefined value as an ARRAY reference at C:/Perl/lib/Math/BigInt/Calc.pm line 476, <fh> line1.
的錯誤是,當它從文件中讀取行。如果在最初的文件中,我把/r
而不是/n
,我沒有得到這個錯誤,但是所有的文件都被讀作一行。
你真的是指'while()'而不是'$ line'嗎?也就是說,'DATA'是一個特殊的文件句柄,通常保留用於'__DATA__'。 – toolic
對不起,我粘貼了各種迭代中的錯誤代碼,但它不存在這個問題 – martini
錯誤在'Math :: BigInt :: Calc'中?再一次,你沒有向我們展示所有的代碼。嘗試安裝'Carp :: Always'並運行你的程序作爲'perl -MCarp :: Always script_name ...'來獲得錯誤的完整堆棧跟蹤。 – mob