Perl chomp不会删除所有换行符

| 我有这样的代码:
#!/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;
    
或者,您在阅读以下内容时可以在每一行中“ 4”行:
#!/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;
    

要回复问题请先登录注册