我已经下载了以下文件: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