in reply to How to sort output?
The part of the "expensive function" in merlyn's note is played bymy @sorted= map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, ( / (\d*\.\d*) ms/ and $1 or 0 ) ] } @data;
which just returns the first (and in this case only) thing that looks like a ping time in the current string. (Update: I should mention the "or 0" is to make sure any lines with no valid ping time sort to the bottom.)/ (\d*\.\d*) ms/ and $1 or 0
IMPORTANT NOTE: GrandFather++ is right about my absent-mindedly using "cmp" instead of "<=>". It should have been
my @sorted= map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, ( / (\d*\.\d*) ms/ and $1 or 0 ) ] } @data;
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: How to sort output?
by GrandFather (Saint) on Jul 22, 2007 at 07:05 UTC | |
by dguntner (Novice) on Jul 22, 2007 at 08:05 UTC |