in reply to XML::RSS and RSS2 with custom namespaces
If you need a pure Perl XML parser implementation you might want to take a look at Ryan Eatmon's work in XML::Stream::Parser. I was using his parser for a while because of that pure Perl requirement that I promptly ignored later because of the issues regarding error handling.
Last time I used X::S::P it did not handle malformated XML at all. And in fact, it would promptly screw up its internal state into an ever growing memory leak. Plus, it is also very /slow/. Even though he makes use of lower level string manipulation and character by character comparisons, it is still extremely slow compared to other C-based parsers (Expat, aka XML::Parser, etc)
So. With those caveats, it is an acceptable module to use when you have a pure Perl requirement and you /know/ that the XML you will be parsing doesn't have any funkiness in it.