为什么Perl只给我文件中的最后一行?

时间:2010-01-10 07:33:32

标签: perl file

我已下载以下文件:rawdata_2001.text

我有以下perl代码:

open TEXTFILE, "rawdata_2001.text";
while (<TEXTFILE>) {
    print;
}

然而,这仅打印文件中的最后一行。有什么想法吗?任何反馈将不胜感激。

2 个答案:

答案 0 :(得分:7)

该文件仅使用回车格式化,因此它被作为一行吸入。您应该能够将$ /设置为“\ r”以使其逐行读取。然后你应该用chomp剥离回车,并确保在字符串后面打印一个新行。

答案 1 :(得分:6)

您的文件可能正在使用"\r"行结尾,但您的终端需要"\n""\r\n"。试试跑:

open my $textfile, '<', "rawdata_2001.text" or die;
while (<$textfile>) {
    chomp;
    print "$_\n";
}

您还可以尝试在使用local $/ = $ending;的循环之前更改输入记录分隔符,其中$ending可以是"\n", "\r\n", "\r"