use strict; use warnings; use XML::Simple; use Benchmark qw/cmpthese/; cmpthese(-5, { "Default" => sub { loadit(); }, "XML::Parser" => sub { loadit("XML::Parser"); }, "XML::SAX::Expat" => sub { loadit("XML::SAX::Expat"); }, }); sub loadit { my $parser = shift || ""; local $ENV{XML_SIMPLE_PREFERRED_PARSER} = $parser; my $xs = XML::Simple->new(ForceArray => 0, KeyAttr => {}); my $xml = $xs->XMLin("xmltest.xml"); } __DATA__ C:\test>perl xmlbench.pl Rate XML::SAX::Expat Default XML::Parser XML::SAX::Expat 4.23/s -- -3% -67% Default 4.36/s 3% -- -66% XML::Parser 12.8/s 203% 194% -- C:\test>perl xmlbench.pl Rate XML::SAX::Expat Default XML::Parser XML::SAX::Expat 4.35/s -- -0% -66% Default 4.36/s 0% -- -66% XML::Parser 12.9/s 197% 196% -- C:\test>perl xmlbench.pl Rate XML::SAX::Expat Default XML::Parser XML::SAX::Expat 4.37/s -- -1% -66% Default 4.40/s 1% -- -66% XML::Parser 13.0/s 197% 195% --