use strict;
use warnings;
use XML::Twig;
my $XML = "
First Error
Second Error
";
sub print_error
{
my ( $twig, $error ) = @_;
print "NEW: ",$error -> first_child_text('desc'),"\n";
}
my $parser = XML::Twig -> new ( 'twig_handlers' => { 'error' => \&print_error } );
$parser -> parse ( $XML );
####
sub process_all_errors
{
my ( $twig, $errors_list ) = @_;
foreach my $error ( $errors_list -> children ( "error" ) )
{
print "NEW: ",$error -> first_child_text('desc'),"\n";
}
}
my $other_parser = XML::Twig -> new ( 'twig_handlers' => { 'errors' => \&process_all_errors } );
$other_parser -> parse ( $XML );