in reply to Sorting @lines
should do the trick. This applies a Schwartzian transform to build and sort an intermediate representation, with the value being sorted pulled out of the hat by the top map. Note that the first two elements are sorted numerically, and the second two are sorted as alphabetically.@sorted = map { $_->[0] } sort { $a->[1] <=> $b->[1] || $a->[2] <=> $b->[2] || $a->[3] cmp $b->[3] || $a->[4] cmp $b->[4] } map { [ $_, split(/\./, $_) ] } @lines;
|
|---|