I can't comment on the naming of the sub, but the substance looks fine, albeit with somewhat quirky indentation. It is clearly a comparison function used to sort a two dimensional array where column importance (for sorting purposes) is in the index order 3, 2, 1, 0, 4.

It might be nice for a comment to say "sort by Name, Social ID number, street address, then eye color", but commenting "sort by columns 4, 3, 2, 1, 5" adds nothing to the code and would likely cause confusion.

There are a few things that could reduce the possibility for error. Using named constants for the column indexes or using a hash for the column entries instead of an array would go a long way to making the code more robust, but wouldn't much change how obvious the intent of this particular routine is.

There may be many nasty things in the code that you are looking at, but this example is really not so awful. The major thing it needs to make it acceptable is a good name.


DWIM is Perl's answer to Gödel

In reply to Re: Why programming is so much more than writing code by GrandFather
in thread Why programming is so much more than writing code by swngnmonk

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.