[Cologne-pm] Regexps nehmen fuer file parsing?

A. Pagaltzis pagaltzis at gmx.de
Wed Apr 2 17:13:31 CST 2003


* johannes huettemeister <j.huettemeister at t-online.de> [2003-04-02 23:40]:
> ich hab ne menge files mit ner menge zeilen wie:
> <id=00001/ab=1/cd=xy/de=20021231(GM)/ef=20030331(GM)/fg=0/gh=/var/log(log)/.
> ..>
> Da ich immer mehrere Kriterien ueberpruefe, bevor ich den Eintrag verarbeite
> (counte),  mach ich sowas wie
> if (($_ =~ m/ab=1/) && ($_ =~ m/de=20021231/)) {
>     $hits{sylvester}++;
> }
> aber das geht doch irgendwie besser, oder?

Du müsstest dein Datenformat genauer definieren.

Wenn dein Beispiel keine Sonderfälle verbirgt würde ich
folgendes machen:

 while(<>) {
     next unless /<(.*)>/;
     my $record = map split(/=/, $_, 2), split m!/!, $1;
     $hits{sylvester}++
        if $record{ab} == 1 and $record{de} eq '20021231';
 }

-- 
Gruss,
Aristoteles



More information about the Cologne-pm mailing list