use strict; use warnings; use XML::Twig; my %dispatch = ( # <-- build it.. to => sub {$_->delete;}, from => sub {$_->set_text( uc($_->trimmed_text) ); $_->flush}, ); my $twig=XML::Twig->new( twig_handlers => \%dispatch , # <-- ..use it! pretty_print => 'indented', ); $twig->parse( *DATA ); __DATA__ Tove Jani Reminder Don't forget me this weekend! #OUT JANI Reminder Don't forget me this weekend!