All,
I have an AoA that I need to sort in a way that I can't think of an immediate solution to. Each element will be an anonymous array of a variable number of strings. The first sort criteria is easy as it is based on the number of elements in the array.
@list = sort {@$a <=> @$b} @list;
The secondary sort criteria is where it gets tricky. For elements that are an anonymous array of the same size, I want them to appear in ascending asciibetical order working from the last element to the front.
['blah', 'asdf', 'foo', 'bar'], ['two'], ['zzz', 'def', 'ghi'], ['one'], ['mmm', 'def', 'ghi'], ['qqq', 'xyz', 'aaa']
should end up sorted as
['one'], ['two'], ['qqq', 'xyz', 'aaa'], ['mmm', 'def', 'ghi'], ['zzz', 'def', 'ghi'], ['blah', 'asdf', 'foo', 'bar'],
Any ideas?

Update: In an effort to be more clear, here are the instructions I would give someone to sort them by hand.

  1. First order by the number of elements with fewest first
  2. Break the items into groups based on the number of elements
  3. For each group, order the items based on the last element
  4. To break ties with the last element, consider the 2nd to the last element
  5. To break ties with the nth element, consider the n-1th element
While in this case, I need ASCIIbetical order, I am interested in a more general solution.

Cheers - L~R


In reply to Custom Sort An AoA by Limbic~Region

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.