in reply to Changing XML Tag values in Perl

Use XML::Twig:

use strict; use warnings; use XML::Twig; use Data::Dumper; my $xml = <<XML; <?xml version='1.0'?> <root> <test> <name>file</name> <href>file.txt</href> </test> <test> <name>file1</name> <href>file1.txt</href> </test> </root> XML my $twig = XML::Twig->new ( twig_roots => {href => \&editHref,}, twig_print_outside_roots => 1, ); $twig->parse ($xml); $twig->flush; sub editHref { my ($twig, $href) = @_; my $text = $href->text (); $text =~ s/\.txt$/.xml/; $href->set_text ($text); $href->print (); }

Prints:

<?xml version='1.0'?> <root> <test> <name>file</name> <href>file.xml</href> </test> <test> <name>file1</name> <href>file1.xml</href> </test> </root> <root><href>file.xml</href><href>file1.xml</href></root>

Perl reduces RSI - it saves typing