Вы получаете то же самое, что и out, потому что первая часть вашего матча не совпадает, поэтому замена не выполняется.
Я предполагаю (так как не было введено никаких данных), что в вашем массиве parsedText
нет новых строк. Вот немного более чистый способ написания того, что вы сделали выше:
foreach ( @parsedText ) {
if (/\s{20}<a href/) {
( my $eventID = $_ ) =~ s/.*?id=(\d+).*/$1/;
( my $eventLink = $_ ) =~ s/.*?'(.*?)'.*/$1/;
( my $event_id_title = $_ ) =~ s/\s+<a.*?>(.*?)<.*/$1/;
print "$eventID, $eventLink, $event_id_title\n";
}
}
Как правило, вам следует избегать синтаксического анализа HTML, подобного этому, и вместо этого использовать годы собранной мудрости, равной http://cpan.org, и использовать HTML :: Parser, HTML :: Parser :: Simple или HTML :: TreeBuilder.