У меня есть такой код:
#!/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 каждая строка, как вы читаете в:
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;