繁体   English   中英

Perl chomp不会删除所有换行符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM