2

我有如下代码:

#!/usr/bin/perl
use strict;
use warnings;
open(IO,"<source.html");
my $variable = do {local $/; <IO>};
chomp($variable);
print $variable;

但是,当我打印它时,它仍然有换行符?

4

3 回答 3

17

它删除最后一个换行符。

由于您在整个文件中啜饮,您将不得不进行正则表达式替换以摆脱它们:

$variable =~ s/\n//g;
于 2011-04-13T19:22:03.047 回答
7

$/Chomp 仅从字符串末尾删除一个换行符(实际上是 的当前值,但在您的情况下这是一个换行符)。要删除所有换行符,请执行以下操作:

$variable =~ y/\n//d;
于 2011-04-13T19:21:30.433 回答
2

或者,您可以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;
于 2011-04-13T19:38:22.643 回答