KM already mentioned a couple other alternatives.

One I have used is DB_File. Just tie to a BTree and you can get keys back in sorted order. Custom sort functions and all. You can't sort on values, but I almost never would want to be able to do that, and if I did it would almost always be better to do it after the fact.

Reminds me though, a fun gotcha I shocked both the author of DB_File and the authors of Berkeley DB with. Consider the following sort function:

sub { use locale; $a cmp $b; }
If you use this someone can store stuff in a locale sensitive order. Handy for those people in Europe with different alphabets.

What happens if someone changes the locale on their machine? And then starts using the database?

BOOM!
Instantly corrupted database! Completely silent!

So this is a handy sort sub to know about, but use with some caution. :-)


In reply to RE (tilly) 1: Module Proposal: Tie::SortHash by tilly
in thread Module Proposal: Tie::SortHash by cwest

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.