$parser = XML::LibXML->new(); $doc = $parser->parse_file( $xmlfilename ); #### $p = XML:LibXML->new(); local $/=''; open (FH,'<:utf8',$filename) or die $!; while (my $order = ) { $order=~s/^.*?//gs; my $xml = < $order XML my $doc = eval {$parser->parse_string($xml)}; if ($@) { warn ("error : $@"); next; } process_orders($doc); }