use warnings; use strict; use XML::Twig; my $xml=<<'XML'; Child 1 Child 2 Child 3 Ufo there! XML my $twig= new XML::Twig( pretty_print => 'indented', twig_handlers => { '/Root/Parent/*' => \&field }, ); $twig->parse( $xml); sub field { my( $twig, $field)= @_; return unless $field->gi() =~ /^child/i; $field->print; #OR print $field->text(); } #OUTPUT # # Child 1 # Child 2 # Child 3