my $countfile = './COUNTFILE'; # Not diropen()... plain old "open" on a directory: open(DIRLOCK, '.') || die "open .: $!"; flock(DIRLOCK, LOCK_EX) || die "Lock failed: $!"; sysopen(COUNT, $countfile, O_RDWR|O_CREAT) || die "open $countfile: $!"; my $num = || 0; chomp $num; seek(COUNT, 0, 0) || die "rewind: $!"; truncate(COUNT, 0) || die "truncate: $!"; if ($operation eq 'checkin') { ++$num; warn "Checkin $num"; } else { --$num; warn "Checkout $num"; } if ($num) { print COUNT $num; } else { # count is 0; get rid of the file unlink $countfile; } close(DIRLOCK) || die "close .: $!";