The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#c
Parsing without native Perl trees

#0
require XML::Bare;
my $ob = new XML::Bare( file => $file );

#-
require XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->parse_file( $file );

#-
require XML::Parser;
my $parser = new XML::Parser();
my $doc = $parser->parsefile( $file );

#-
require XML::Parser::Expat;
my $parser = new XML::Parser::Expat();
sub noop{}
$parser->setHandlers('Start' => \&noop, 'End' => \&noop, 'Char' => \&noop);
open(FOO, $file) or die "Couldn't open $!";
$parser->parse(*FOO);
close(FOO);

#-
require XML::Descent;
my $p = XML::Descent->new( { Input => $file } );
$p->on( item => sub {
                  my ($elem, $attr) = @_;
                  $p->walk; # recurse
                }                               );
$p->walk;

#-
require XML::DOM;
my $parser = new XML::DOM::Parser;
my $doc = $parser->parsefile( $file );