在perl中应用chomp后,不会打印行
在代码中,我试图借助chomp函数删除每行末尾的换行符。但当我尝试在应用chomp后打印该行时,该行不会打印任何内容。它给出以下输出:在perl中应用chomp后,不会打印行,perl,scripting,chomp,Perl,Scripting,Chomp,在代码中,我试图借助chomp函数删除每行末尾的换行符。但当我尝试在应用chomp后打印该行时,该行不会打印任何内容。它给出以下输出: // Computes R0 = 2 + 3 @2 D=A @3 D=D+A @0 M=D 检查线路: 检查线路: 检查线路: 检查线路: 检查线路: 检查线路: 为什么没有打印行?如果输入有\r\n行结尾,我可以重现您的问题chomp将删除\n,但保留\r,这(在Unix上)将产生将光标移动到行首的效果(不前进到下一行)。由于您的行很短,下一个输出(检查行
// Computes R0 = 2 + 3
@2
D=A
@3
D=D+A
@0
M=D
检查线路:
检查线路:
检查线路:
检查线路:
检查线路:
检查线路:
为什么没有打印行?如果输入有
\r\n
行结尾,我可以重现您的问题chomp
将删除\n
,但保留\r
,这(在Unix上)将产生将光标移动到行首的效果(不前进到下一行)。由于您的行很短,下一个输出(检查行
)将完全覆盖它
对不起,博罗丁。因此,解决办法是:
您的输入是否有
\r\n
行结尾?我认为它没有这种类型的结尾,但它至少不应该在换行符之前打印剩余的字符。请确保print$line在您的两行后返回一些内容(不相关-尽量避免使用。这更多的是一个问题而不是好处。)…解决方案是?!我如何知道行是否有结尾。\r\n有没有办法检查它?显然,如果$string=~/\r\n$/
Checking for line:
Checking for line:
Checking for line:
Checking for line:
Checking for line:
Checking for line:
$line =~ s/\s+$//;