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

adh*_*lon 1 perl file

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

我有以下perl代码:

open TEXTFILE, "rawdata_2001.text";
while (<TEXTFILE>) {
    print;
}
Run Code Online (Sandbox Code Playgroud)

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

erg*_*sys 7

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

  • 终日啃食; 打印; 打印"\n" (4认同)

Eri*_*rom 6

您的文件可能正在使用"\r"行结尾,但您的终端期望"\n""\r\n".试试跑步:

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

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