Perl代码:输出未正确显示

时间:2015-04-21 11:44:19

标签: perl

我有一个perl代码,我可以访问多个txt文件并为它们生成输出。 当我运行代码时,控制台上的输出行被覆盖。

2015-04-21:12-04-54|getFilesInInputDir|  ********** name : PEPORT **********
PEPORT4-21:12-04-54|readNFormOutputFile|  name :
PEPORT" is : -04-54|readNFormOutputFile| Frequency for name "

请注意,它应该是第二行和第三行

2015-04-21:12-04-54|readNFormOutputFile| name : PEPORT
2015-04-21:12-04-54|readNFormOutputFile| Frequency for name "PEPORT"

此后,代码停止处理我的文件。代码似乎很好。我可以知道可能的原因是什么。

感谢。

2 个答案:

答案 0 :(得分:2)

似乎是CR / LF与LF问题。通过运行dos2unixfromdos将输入从MSWin转换为Linux,或从Perl代码中删除"\r"个字符。

答案 1 :(得分:0)

正如choroba所说,我猜你正在Linux上读取一个在Windows上生成的文件。最简单的解决方法是将chomp替换为s/\s+\z//s/\p{cntrl}+\z//

或者,如果尾随空格很重要,您可以使用s/[\r\n]+\z//,或者,如果您运行的是Perl 5的版本10或更高版本,s/\R\z//