in reply to XML Module decision tree?
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
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,