use strict; use warnings; use XML::Twig; my $t= XML::Twig->new (twig_roots => {'Data' => \&extract}); $t->parse (do {local $/; ()}); sub extract { my ($t, $data) = @_; $data->print; print "\n"; } __DATA__ DATA1 DATA2 DATA3 DATA4 DATA5 DATA6 DATA6 DATA7