代码之家  ›  专栏  ›  技术社区  ›  adhanlon

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

  •  1
  • adhanlon  · 技术社区  · 16 年前

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

    我有以下perl代码:

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

    但是,这只打印文件中的最后一行。你知道为什么吗?如有任何反馈,将不胜感激。

    2 回复  |  直到 16 年前
        1
  •  7
  •   ergosys    16 年前

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

        2
  •  6
  •   Eric Strom    16 年前

    "\r" 行结束,但您的终端需要 "\n" "\r\n"

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

    local $/ = $ending; 哪里 $ending "\n", "\r\n", "\r"