use warnings; use strict; use XML::Twig; my $xml=<<'XML'; B value D_Value B value D_Value XML my $twig= new XML::Twig( pretty_print => 'indented', twig_handlers => { '/Root/A/B' => \&field_B, '/Root/A/C/D' => \&field_D, }, ); $twig->parse( $xml); sub field_B { my( $twig, $field)= @_; print 'Value of B is: '.$field->text."\n"; } sub field_D { my( $twig, $field)= @_; print 'Value of D is: '.$field->text."\n"; }