Here's the latest module of mine, a spin-off from Plagger project: XML::OPML::LibXML. It's now going to CPAN and is available at my SVN repo http://svn.bulknews.net/repos/public/XML-OPML-LibXML/trunk/
There's already a similar module XML::OPML on CPAN, but we don't like it because it doesn't have a decent API to access parsed OPML data (while it has a good API to create new OPML data programatically) and it depends on XML::Parser (the expat) and XML::SimpleGen.
So I wrote an LibXML and SAX based code to parse OPML subscription in Plagger and it looks like a good candidate for CPANization.
XML::OPML::LibXML is written using LibXML and accesses data using LibXML DOM API at runtime. So it's pretty fast and memory efficient. See the benchmarking code and its DATA section for the sample benchmark results. On my box it's 4 times faster. If you'd like to deal with a relatively big OPML document you're recommended to use walkdown + callback API so it saves more memory.
The API it provides is very simple and limited to the low-level ones yet. For example it can't be used to create new OPML, and it's not a drop-in replacement of XML::OPML and won't be ever.
But I'd like to add more some nifty feature and APIs in the future if possible.