in reply to CGI counter resets for no obvious reason

this is a (stupid) counter i wrote for exercise years ago: maybe it could help you...
!/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; }