Patrick: weniger Code durch for-Schleife??

Beitrag lesen

Hallo Cheatah!

perldoc perllol

LOL? Gibt's in diesem Part der Perldoc was zu lachen? ;-)

(perl)LOL beiseite, ich klinke mich mal hier ein, um ein laenger bestehendes "Problem" zu eroertern, das in etwa mit der Frage von lempolis zu tun hat, naemlich Vereinfachung von Abfragen.

Ich moechte die Uhrzeit meiner Page-Views auswerten, die in einer Logfile vermerkt sind, welche nach dem Muster:

datum*uhrzeit*host*ip*bla*foo*willnochmehrwissen*

aufgebaut ist.

Die Datei wird eingelesen und die Werte (nach einem Tipp von Christian) in hashes gespeichert:

open (INFO, "$File.txt") || die;
while (my $entry = <INFO>)
{
my @data = split(/\*/,$entry);
$Datum{$data[0]}++;
$Uhrzeit{$data[1]}++;
$restzeugs{$data[restszeugsnummer]}++;
.
.
.
}

Wie kann ich nun die Auswertung nach Uhrzeiten so vereinfachen, dass ich das hier (die if-Abfrage):

for (%Uhrzeit)
{
if ($_ =~ /^12:.*/)  # Alle um 12 Uhr (12:00:00 bis 12:59:59)
  { push (@Um12, $Uhrzeit{$_});
  }
}
map { $TotalUm12 +=$_;}@Um12;
print "Total der Besucher in der 13. Stunde: $TotalUm12<br>\n";

nicht 24 Mal, die ein lieber Tag an Stunden hat, schreiben muss? Zumal zuviele intensive Arrays regelmaessig zu kuendingungsverdaechtigen (angenommen, ein solcher waere ein Arbeitnehmer) Arbeitsverweigerung Seitens des Serverspeichers fuehren, mit einer Meldung der Art "can not ... large request of xxx bytes" (Originalmeldung habe ich nicht mehr in Kopf, denn sie kommt nur dann, wenn die Logfile bereits gut angewachsen ist).

Patrick

P.S.: Wolltest Du nicht mal ein Counter schreiben? Wo ich sogar angefragt hatte, ob ich Betatester spielen duerfte?... Muss schon gut 2 Jahre her sein, soweit ich mich erinnern kann :-)