in reply to Sample Sort Code
produces:my @lines = split /\n/, <<EOD; 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 EOD @lines = map { $_->[0] } # extract lines back out sort { # sort on split columns $a->[1][0] cmp $b->[1][0] # index 0 is 'col1' || $a->[1][1] cmp $b->[1][1] # col2 || $a->[1][4] cmp $b->[1][4] # col5 } map { [ $_ => [ split /\s+/, $_ ] ] } # [ 'line1' => ['col1', +...] ] @lines; print "$_\n" foreach @lines;
D1001 SNAM1 1 101 XYZ1234 21.11 D1001 SNAM1 2 103 XYZ1234 22.12 D1001 SNAM1 4 104 XYZ1234 22.12 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 D1002 SNAM2 5 205 PQR2234 37.12 D1003 SNAM3 1 301 ABC1234 22.12
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sample Sort Code
by johngg (Canon) on Sep 12, 2006 at 22:22 UTC | |
by mreece (Friar) on Sep 12, 2006 at 22:37 UTC | |
|
Re^2: Sample Sort Code
by Anonymous Monk on Sep 13, 2006 at 17:08 UTC | |
by mreece (Friar) on Sep 13, 2006 at 18:25 UTC |