in reply to Re: Sample Sort Code
in thread Sample Sort Code

I think that your first map and the subsequent sort in the ST look a little confusing. There is no need for an AoA as a simple anonymous list will suffice with no need for double subscripts in the sort block. Also, you can use split without arguments here as splitting $_ on whitespace is the default.

use strict; use warnings; my $discard = scalar <DATA> for 1 .. 2; # Use the line below instead of above if # you want to retain the column headers. # # print scalar <DATA> for 1 .. 2; print map {$_->[0]} sort { $a->[1] cmp $b->[1] || $a->[2] cmp $b->[2] || $a->[5] cmp $b->[5] } map {[$_, split]} <DATA>; __END__ Col1 Col2 Col3 Col4 Col5 Col6 ======================================================== D1001 SNAM1 1 101 XYZ1234 21.11 D1001 SNAM1 1 102 XYZ2234 22.12 D1002 SNAM2 1 201 PQR2234 12.12 D1002 SNAM2 2 202 PQR2234 32.12 D1002 SNAM2 3 203 PQR2234 52.12 D1002 SNAM2 4 204 PQR2234 37.12 D1001 SNAM1 2 103 XYZ1234 22.12 D1003 SNAM3 1 301 ABC1234 22.12 D1002 SNAM2 5 205 PQR2234 37.12 D1001 SNAM1 4 104 XYZ1234 22.12

Cheers,

JohnGG

Replies are listed 'Best First'.
Re^3: Sample Sort Code
by mreece (Friar) on Sep 12, 2006 at 22:37 UTC
    excellent points.