![](/img/trans.png)
[英]Why does 'chomp' fail to remove newlines on Windows XP with Eclipse and Cygwin Perl?
[英]Perl chomp does not remove all the newlines
我的代码如下:
#!/usr/bin/perl
use strict;
use warnings;
open(IO,"<source.html");
my $variable = do {local $/; <IO>};
chomp($variable);
print $variable;
但是,当我打印它时,它仍然有换行符?
它删除了最后一个换行符。
由于你在整个文件中啜饮,你将不得不做一个正则表达式替换来摆脱它们:
$variable =~ s/\n//g;
Chomp只从字符串的末尾删除换行符(实际上是$/
的当前值,但这是你的情况下的换行符)。 要删除所有换行,请执行以下操作:
$variable =~ y/\n//d;
或者你可以chomp
每一行,你在读它:
#!/usr/bin/perl
use strict;
use warnings;
open my $io, '<', 'source.html';
my $chomped_text = join '', map {chomp(my $line = $_); $line} <$io>;
print $chomped_text;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.