#!/usr/bin/perl use strict; use warnings; use Benchmark; use Dumpvalue; use encoding 'utf8'; use XML::Simple; use XML::Parser; die "Usage: ./bench.pl xmlfile\n" if(!@ARGV); my $xml; { open(IN,$ARGV[0]) or die; $/ = undef; $xml = ; close(IN); } sub simpleXP { $XML::Simple::PREFERRED_PARSER = 'XML::Parser'; my $p = XML::Simple->new(); my $r = $p->XMLin($xml,ForceArray=>1,KeyAttr=>{}) or die; } sub simpleSAX { $XML::Simple::PREFERRED_PARSER = 'XML::SAX::PurePerl'; my $p = XML::Simple->new(); my $r = $p->XMLin($xml,ForceArray=>1,KeyAttr=>{}) or die; } timethese(500,{ SimpleXP => 'simpleXP($ARGV[0])', SimpleSAX => 'simpleSAX($ARGV[0])', });