Я рекомендую XML :: Twig . Он может изменять все элементы с определенным именем или только один элемент. Он имеет отличную документацию, в том числе учебник ... и автор модуля всегда на связи:)
Это простой пример, который добавляет некоторый текст ко всем элементам с именем "article":
use strict;
use warnings;
use XML::Twig;
my $xmlStr = <<XML;
<foo>
<article>ME ME ME</article>
<article>HE HE</article>
<particle>ME TOO</particle>
</foo>
XML
my $twig= XML::Twig->new(
twig_handlers => { article => \&article }
);
$twig->parse($xmlStr);
$twig->print();
print "\n";
exit;
sub article {
my ($twig, $art) = @_;
my $stuff = $art->text(); # get the text of article
$stuff .= ' YOU YOU YOU';
$art->set_text($stuff);
}