[Groningen-pm] Precedence verschil '||' en 'or'

Arnoud Warmerdam aw at warpnet.nl
Mon Aug 28 02:54:56 PDT 2006


Hoi,

Ik schreef net een scriptje om spikes te vinden in http logs en het 
werkte niet zoals bedoeld:

====================== perl script ===================================
#!/usr/bin/perl

use warnings;
use strict;

my $treshold = shift(@ARGV) || 10; # default treshold 10 hits/second
my $currentsecond = 0;
my $hits = 0;

while(<>)
{
   my ($newsecond) = m|^.*?\[\d+/\w+/\d+:(\d\d:\d\d:\d\d) \+\d+\]| || 
warn "Cannot parse this line: $_";
   if ($newsecond ne $currentsecond) {
     print "$currentsecond: $hits hits.\n" if ($hits > $treshold);
     $currentsecond = $newsecond;
     $hits = 1;
   }
   else {
     $hits++;
   }
}
# don't forget the last second:
print "$currentsecond: $hits hits.\n" if ($hits > $treshold);
===================== /perl script ===================================

Met 'or' in plaats van '||' op regel 12 werkt het wel goed. Mijn vraag: 
is het beter om default 'or die' te gebruiken? Ik gebruik normaal altijd 
'|| die', kan me herinneren dat ooit iemand aan me heeft uitgelegd dat 
dat beter is, maar weet nu niet meer waarom ...

Groeten,

Arnoud


More information about the Groningen-pm mailing list