in reply to CGI counter resets for no obvious reason
!/usr/bin/perl -w use Fcntl qw(:flock); my $filename = '/tmp/counter'; if(-e $filename) { open FH, "+< $filename" || die "cannot open: $!"; } else { #first time... open FH, "+> $filename" || die "cannot open: $!"; } lock(FH); my $count = <FH> || 0; $count++; seek FH, 0,0; print FH $count; unlock(FH); print "$count\n"; sub lock { my $fh = shift; flock $fh, LOCK_EX; } sub unlock { my $fh = shift; flock $fh, LOCK_UN; }
|
|---|