Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: How to sort output?

by BrowserUk (Pope)
on Jul 22, 2007 at 07:14 UTC ( #628093=note: print w/ replies, xml ) Need Help??

in reply to How to sort output?

This (untested) code should do the trick. It uses a regex to extract the numbers and a GRT (see A brief tutorial on Perl's native sorting facilities.) to make the sort reasonably efficient.

## [ip: 111.222.333.444] is alive 70.05 ms) ## Updated: switched 'N' for 'd'; real data. my @sorted = map { unpack 'x[d] A*', $_ } sort map { my( $time ) = m[([\d.]+) ms)$]; pack 'd A*', $time, $_; } @data;

The regex will need tweaking if the latency can produce numbers in other units. Eg. whole seconds or microseconds instead of milliseconds.

You might need something like:

my( $time, $units ) = m[([\d.]+) (ms|us|secs)]; my $scaler = $units eq 'us' ? 0.1 : $units eq 'secs' ? 1000 : 1; $time *= $scaler;

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
Comment on Re: How to sort output?
Select or Download Code

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://628093]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2016-05-06 03:22 GMT
Find Nodes?
    Voting Booth?