http://www.perlmonks.org?node_id=586857


in reply to print log file

print if( (timestamp > thresh) .. 0 );

Replies are listed 'Best First'.
Re^2: print log file
by Fengor (Pilgrim) on Nov 30, 2006 at 06:12 UTC
    As BUU said: use the flipflop operator. it takes the form of expression1 .. expression2 and evaluates as false until expression1 is met and then triggers to true until expression2 is met

    So basically what BUU does is setting expression1 timestamp > threshhold so that it is met by your criteria and expression2 is 0 which equivalates to false. So that after expression1 is met for the first time the if statement continues to return true until the whole file is processed.

    If you want to know more about the flip/flop operator (and why it's easy to confuse with the range operator i recommend GrandFathers excellent Flipin good, or a total flop?

    --
    "WHAT CAN THE HARVEST HOPE FOR IF NOT THE CARE OF THE REAPER MAN"
    -- Terry Pratchett, "Reaper Man"

Re^2: print log file
by xiaoyafeng (Deacon) on Nov 30, 2006 at 07:18 UTC
    thank you! below is benchmark:(sub a is my code)
    Benchmark: timing 200 iterations of a, b... a: 26 wallclock secs (25.38 usr + 0.23 sys = 25.62 CPU) @ 7 +.81/s (n=200) b: 24 wallclock secs (23.77 usr + 0.22 sys = 23.98 CPU) @ 8 +.34/s (n=200) Rate a b a 7.81/s -- -6% b 8.34/s 7% --