Acho que já disse isso antes, mas corro o risco de soar como um disco emperrado. NÃO use expressões regulares para analisar XML. É frágil e propenso a quebrar. Eu perguntaria primeiro - por que você está tentando fazer o que está fazendo? Porque deve ser irrelevante quando se trabalha com o seu XML.
Em vez disso, use um analisador:
#!/usr/bin/env perl
use strict;
use warnings;
use XML::Twig;
my $twig = XML::Twig->parsefile('your_file.xml');
foreach my $elt ( $twig->get_xpath('//#PCDATA') ) {
$elt->set_text( $elt->trimmed_text );
}
$twig->set_pretty_print('indented_a');
$twig->print;
Isso faz o que você quer ... mas se você está realmente trabalhando com o XML normalmente, esse método trimmed_text
provavelmente remove a necessidade desse processamento de qualquer maneira.