问题描述
|
我有这样的代码:
#!/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;