I agree. When working with large XML files, memory can become a concern.

Right off, I must admit that XML::Pastor is not as savy as XML::Twig in this area. As you know, XML::Twig is capable of lazy/selective population of its structures, whereas XML::Pastor will first parse the entire XML into an XML::LibXML DOM tree and then convert the data into Perl native data objects (with hashes, arrays, scalars). On the other hand, the DOM is immediately thrown away so there is no double jeapordy.

In terms of memory usage, XML::Pastor probably compares very much to XML::Simple, because the tree structures are similar except that in the case of XML::Pastor, the references are blessed objects.

Compared to XML::LibXML DOM tree, XML::Pastor probably weighs less in memory as there is quite a bit of book-keeping in the DOM.

One caveat though => currently XML::Pastor is only good for working with DATA style XML (without mixed mark up). This basically means that an element either contains only text or only child elements, not both mixed. So, XML::Pastor is not good for working with a markup language such as XHTML, for example.


In reply to Re^3: RFC: XML::Pastor v0.52 is released - A revolutionary way to deal with XML by aulusoy
in thread RFC: XML::Pastor v0.52 is released - A revolutionary way to deal with XML by aulusoy

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.