Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: (cLive ;-)(Golf) Analyzing Time From tcpdump Output

by chipmunk (Parson)
on Feb 05, 2002 at 03:43 UTC ( #143346=note: print w/ replies, xml ) Need Help??


in reply to (cLive ;-)(Golf) Analyzing Time From tcpdump Output
in thread (Golf) Analyzing Time From tcpdump Output

I'm afraid your solution has a bug; the greedy matching of .* means that $2 only contains one of the digits before the decimal point, rather than both. Here's another way to match: perl -lp0e'/([\d.]{9}).*([\d.]{9})/s;$_=$2-$1'
Using -l is shorter than using $:, and avoids outputting a spurious '-' after the newline. :)


Comment on Re: (cLive ;-)(Golf) Analyzing Time From tcpdump Output
Download Code
(cLive ;-)(Golf) Analyzing Time From tcpdump Output
by cLive ;-) (Parson) on Feb 05, 2002 at 07:45 UTC
    Are you sure? Try running it... :)

    The \d+ is greedy too...

    cLive ;-)

      Yes, I am sure. I did run it, and it output the wrong answer:
      -49.994325 -
      It doesn't matter that \d+ is greedy, because .* is greedy and gets to go first. The .* only backtracks far enough to allow the \d+ to match. \d+ can match a single digit, so .* only gives up a single digit. But to get the correct answer, \d+ has to match two digits before the decimal point, not one.

      On the other hand, it's okay if $2 only contains one digit before the decimal point, if $1 also contains a single digit before the decimal point: perl -lp0e'/(\d\.\d+).*(\d\.\d+)/s;$_=$2-$1'

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (8)
As of 2014-12-21 00:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (100 votes), past polls