It might be difficult but I'll try anyway ;--).
At least here are a few hints:
- document size: big documents excludes most tree-oriented modules,
such as XML::Simple, XML::DOM and XML::XPath
big depends on your RAM and on the expansion factor of the module, typically
between 7 an 10
- type of XML: document-oriented XML excludes modules such as XML::Simple
and XML::SimpleObjects
those modules don't deal with mixed content
(<p>this is <b>mixed</b> content</p>),
- ease of use: although this is higly subjective XML::Simple seems to be
considered really easy to use as it completely masks the XML by loading it into
a Perl data structure (a pretty convoluted data-structure IMHO, use Data::Dumper!), tree-based modules (XML::XPath, XML::DOM, XML::Twig)
are generally easier to use than stream-based ones, although for simple data
extraction XML::PYX is very convenient,
- speed: at the moment XML::Parser is the fastest (all other modules
are based on it) but modules based on libXML should be faster soon (XML::XPath
2.0 for example). Stream-based modules are usually faster than tree-based ones,