Thread Inhalt aus Logging zählen (24 answers)
Opened by la_dy82 at 2010-12-14 18:12

dgw
 2010-12-16 10:22
#143627 #143627
User since
2010-08-16
27 Artikel
BenutzerIn

user image
2010-12-14T17:57:11 clms
Die Abfragen if (!exists...) kannst Du weglassen.
Code (perl): (dl )
1
2
3
if( my ( $model , $color ) = ( $line =~ m/^\d{4}\.\d{2}\.\d{2}\s+\d{2}:\d{2}:\d{2}\s+(\S+)\s+(\S+)/ ) ) {
   $data{$model}->{$color}++ ;
}
genügt.

Wenn es die Hash-Einträge $data{$model} und $data{$model}->{$color} noch nicht gibt, legt Perl sie automatisch an.


Man kann auch
Code (perl): (dl )
use strict
weglassen, dann gibt es sogar für Variablen Autovivication, aber aus genau dem gleichen Grunde warum man das NICHT macht, verwende ich hier diese Testbedingungen.
In meinen eigenen Skripten traue ich dem Input nicht, und würde vor dem Anlegen eines neuen Key/Value Paares erstmal prüfen, ob $model und $color überhaupt erlaubt sind. Tauchen "verbotene" Werte auf, ist es an dieser Stelle ganz einfach zu sagen, wo der Fehler ("Bad data in inputfile line ...") steckt. Später den Hash zu prüfen ob alle Key/Value Paar überhaupt erlaubt waren ist wenig hilfreich.

Just my 2 cents.
Daniel

View full thread Inhalt aus Logging zählen