Thread Logdatei ab bestimmter Zeile durchsuchen (11 answers)
Opened by deadfm at 2013-01-22 15:43

FIFO
 2013-01-23 13:11
#165143 #165143
User since
2005-06-01
469 Artikel
BenutzerIn

user image
2013-01-23T11:16:33 deadfm
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while(<LOG>)              #Whileschleife für die Durchsuchung der Datei
{
    if($_ =~ $versch)     #Datei auf "Verschieben" prüfen
    {                     
        $cversch ++;      
    }
    if($_ =~ $korr)       #Datei auf "eingepflegt" prüfen
    {
        $cerflg ++;
    }
    if($_ =~ $err)        #Datei auf "Fehler" prüfen
    {
        $cerr ++;
    }
}


Mal eine Anmerkung zum Programmierstil: Du verwendest das implize magische Setzen von $_, z.B. in while (<LOG>), was gleichbedeutend ist mit while (local $_ = <LOG>). Diese Kurzformen haben eine gewisse Erotik, aber auch ihre Tücken. Konsequenterweise müsstest Du auch die RegEx-Vergleiche dann so schreiben: if (/$versch/). Nach meiner Erfahrung ist die implizite Verwendung von $_ nur bei ganz kleinen Konstrukten sinnvoll, die man mit einem Blick erfasst. Sprechende Laufvariablen sorgen dafür, dass der Code auch nach längerer Zeit sofort verständlich ist:
Code (perl): (dl )
1
2
3
4
5
6
while (my $line = <LOG>)              #Whileschleife für die Durchsuchung der Datei
{
    if ($line =~ /$versch/)     #Datei auf "Verschieben" prüfen
    {                     
        $cversch ++;      
    }
Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"

View full thread Logdatei ab bestimmter Zeile durchsuchen