Perl 5.16.3 and 5.10.0 on MacBook Snow Leopard.

Dear Masters of Puissance,

Is there a way to write an array or a hash to a file for later fast retrieval? I'm playing with dictionaries, and the slowest part of the operation is reading it in (yes, I've profiled it).

More specifically, I have a hash whose key is the sorted letters in a word (as an aside, sorting those letters with split/sort/join is about 1/3rd of the running time) and the value is, wait for it, a reference to an anonymous list of its anagrams.

It would be cool if the hash thus constructed could be dumped out to a file, for immediate reloading next time around. I understand that whatever technique is chosen would be heavily Perl-dependant, but it would be a simple matter to detect this, e.g. a header indicating the Perl used to create it, and rebuilding it.

Tied variables seem to suggest themselves, but I can't quite grok them (I've been a C programmer far longer than I've been a Perl programmer, and I really love Perl!).

Ta muchly.

-- Dave


In reply to Saving a hash/array to a file by davehorsfall

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.