use XML::Twig; my $t= XML::Twig->new(pretty_print => 'indented', twig_handlers => { 'text'=>sub{ print $_[1]->text; $_[0]->purge; # or: # my $useful = $_[1]->text; # my $ret_val = some_sub_that_process_it_further($useful); # $_[0]->purge; }, } );