also nochmals.
Das erste Script, welches lediglich ein get bekommt auswertet.#!c:\perl58\bin\perl.exe
use strict;
use Config::IniFiles;
use CGI::Carp qw(fatalsToBrowser);
use CGI;
also ausser das die Warnungen fehlen.
open (DAT , "< ./data/stat.log") || die "Kann Datenfile (/data/stat.log) nicht zum Lesen öffnen" ;
@lines = <DAT> ;
close(DAT) ;#Count schreiben
foreach my $line (@lines)
{
chomp $line ;
my ($num, $pgname, $ipadress, $datum) = split(/&&/, $line) ;
chomp $datum ;if ($pgname eq $page)
{
$num++;
$checknone = 1;
$output[$i]="$num&&$pgname&&$ipadress&&$datum&&" ;
}
else
{
$output[$i]="$line" ;
}
$i++;}
if ($checknone == 0)
{
$i++;
$output[$i]="1&&$page&&$ipnum&&$date&&" ;
}
open (DAT , "> ./data/stat.log") || die "Kann Datenfile (/data/stat.log) nicht zum Schreiben öffnen" ;
print DAT "@output";
Du hast hier keine Trenner mehr zwischen deine Datensätzen.
close(DAT) ;
}
würd ich hier, die Datei zum lesen + schreiben öffnen
Dann flocken dazu musst du sie aber dann erst löschen (truncate) und den Filezeiger auf den Anfang setzten.
Das ist sicherere als das.
struppi.