I am writing an OO program. It being OO (or some close approximation), it deals with its data in the form of objects. These objects are 2-3 levels deep in references, and refer to each other in a mad, free-form manner which would normally not be a problem, except...

... that this data may grow to be too large for memory to hold. Not only that, but also it may, nay, will, need to be saved to disk. Thus, I need persistence of some sort. My first instinct was to use a tied hash to store all the objects and use something like DB_File. However, DB_File stringifies everything, which is unacceptable. My next thought was to use MLDBM or similar (or write my own), which might work, except I'm not sure how well it handles circular structures. I think it dumps the whole structure into each slot.

Any thoughts?


In reply to Persistence and handling large amounts of multi-level self-referential data by premchai21

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.