我已經下載了以下文件:rawdata_2001.text爲什麼Perl只給我文件中的最後一行?
,我有以下Perl代碼:
open TEXTFILE, "rawdata_2001.text";
while (<TEXTFILE>) {
print;
}
但是,這僅打印文件的最後一行。任何想法爲什麼?任何反饋將不勝感激。
我已經下載了以下文件:rawdata_2001.text爲什麼Perl只給我文件中的最後一行?
,我有以下Perl代碼:
open TEXTFILE, "rawdata_2001.text";
while (<TEXTFILE>) {
print;
}
但是,這僅打印文件的最後一行。任何想法爲什麼?任何反饋將不勝感激。
文件的格式與馬車只返回,因此它在作爲被吸一條線。您應該能夠將$ /設置爲「\ r」,以便逐行讀取它。然後你應該用chomp去除回車符,並確保在字符串後面打印一個新行。
您的文件可能使用"\r"
行結尾,但您的終端預計"\n"
或"\r\n"
。試運行:
open my $textfile, '<', "rawdata_2001.text" or die;
while (<$textfile>) {
chomp;
print "$_\n";
}
你也可以嘗試用local $/ = $ending;
,循環之前改變輸入記錄分隔符,其中$ending
可能是"\n", "\r\n", "\r"
我的代碼現在看起來像這樣: $/=「\ r」; open TEXTFILE,「rankorder/rawdata_2001.text」; while(){ print; } 儘管如此,仍然沒有運氣,仍然只打印最後一行 –
adhanlon
2010-01-10 07:50:58
對不起,評論是很難閱讀(不知道如何格式化評論正確)。但無論如何,我添加了$/=「\ r」;到perl程序的頂部,但仍然沒有改變。任何其他想法或建議? – adhanlon 2010-01-10 07:52:01
chomp;打印;打印「\ n」 – ergosys 2010-01-10 07:52:33