Moved from Q&A to allow a better discussion...

In response to this code:

@data = ( [qw(Bubba brutalski 20)], [qw(Bubba brutalski 10)], [qw(JoeBob brutalski 20)], [qw(Jethro brutalski 20)], [qw(Junior brutalski 20)], ); # Sorted by Name (Last, First) @ByName = sort {$a->[1] cmp $b->[1] || $a->[0] cmp $b->[0]} @data; # Sorted by Name, then score @FullSort = sort {$a->[1] cmp $b->[1] || $a->[0] cmp $b->[0] || $a->[2] <=> $b->[2]} @data;
an Anonymous Monk asked:

Will progressive sorting functon, like below, function the same way as using the || ?:

# Full sort by Name, surname, then score @data = sort { $a->[0] cmp $b->[0] } @data; @data = sort { $a->[1] cmp $b->[1] } @data; @data = sort { $a->[2] <=> $b->[2] } @data;
And a little extra question -- can I make comparisions inside the subroutine, and does the following mean...
return -1; # moves the item lower return +1; # goes above the previous one return 0; # equals
??? .. or I don't understand it at all ? :))

I need to sort an array with net line speeds... the line speeds can be like "10Mbps" "115kbps" "2Mbps" "T1 LINE" ... so in the ASCIIbetical sorting the 115kbps would go to the top, while the T1 monster would fall to the bottom...

So now I need some trick to make some "priority hash" or array where I'd put the proper order of sort...

thanx again!


In reply to Are these sorting methods the same? by Russ

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.