XML::SAX::ExpatXS on Windows. Have mercy on me!

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

I've been trying to find a good XML parsing solution on Windows
for several days and it's driving me crazy! Nothing seems to work.
I started with XML::Parser but with the latest version of Active
State perl, latest ppm installs, perl crashes with the infamous
"Perl.exe has generated errors" on some XML documents. I then
tried Twig but its lack of support for namespaces didn't work
for me, plus its model wasn't a very convenient one for what I'm
doing. LibXML doesn't seem efficient enough for the really huge
XML documents I'm processing.

Finally I'm trying ExpatXS. The ppm didn't install libexpat.dll,
but I managed to find it, and install it. I got an error about
strict "refs" in Base.pm, fixed that by putting in a no strict "refs"
at the appropriate point. Now I'm getting the error:

No _parse_* routine defined on this driver (if it a filter,
remember to set the Parent property) [XML::SAX::ExpatXS=HASH(0x1ab2764)]
at D:/apps/perl/site/lib/XML/SAX/Base.pm line 2308.

I tried the code from the few measily examples I could find
(Here's the latest iteration)

use XML::SAX::ExpatXS;
use strict 'vars';

my $xmlfile = 'test.xml';

my $handler = new MyHandler;
my $parser = new XML::SAX::ExpatXS ( Handler => $handler );

package MyHandler;

sub new {
   my $type = shift;
   return bless {}, $type;


Someone please have mercy on me! I thought parsing XML was
supposed to be easy with perl. I've been using perl to parse
SGML on Windows for years and years. But trying to modernize
to XML is a nightmare on Windows. Perl crashes, ppms don't
work, nobody's supposed to use XML::Parser anymore but trying
to pick a better event-based parser is confusing to say the
least. What am I doing wrong? What is the best event-based XML
parsing method that's the fastest and works with huge XML
documents and supports namespaces and entity management?

Help via private email is more than welcome please:

rodent at gmail.com

(replace 'at' with '@'))

Site Timeline