Struppi: syntax error in perl modul

Beitrag lesen

sub UpdateStats {
  my $referer = $CNT::ref || '';
  $iplog{$ENV{'REMOTE_ADDR'}} = $time;

my $file = Untaint("$DEF::datadir/$CNT::id.stat");

Der Punkt muss nicht markiert werden. Das '&' Zeichen ist überflüssig. (Du kannst das benutzen um Parameter durchzureichen)

open(ST,">>$file");

Funktioniert das? Immer prüfen!

open ST,">>$file" || die "Kann $file nicht öffne. Weil: $!";

flock(ST,2);

Funktioniert das? (Auf manchen Windowssystem nämlich nicht)
Ausserdem ist 2 nicht immer das was du willst (ich gehe mal von LOCK_EX aus).

Also:
use Fcntl qw(:flock);

flock ST, LOCK_EX || die "Lock schlug fehl. ($!)";

print ST $time, '|', e"thostname($ENV{'REMOTE_ADDR'}), '|',   $referer, '|', $ENV{'HTTP_USER_AGENT'}, "\n";

Was ist das?

Eventuell willst du:
print ST "$time|". hostname($ENV{'REMOTE_ADDR'}).
"|$referer|$ENV{'HTTP_USER_AGENT'}\n";

Struppi.