use Fcntl ':flock'; flock(file,LOCK_EX); seek file, 0, 0; #### #!/usr/bin/perl -wT use Fcntl qw(:flock); my $file = 'test_lock.txt'; my $SEMAPHORE = $file . '.lck'; open(S, ">$SEMAPHORE") or die "$SEMAPHORE: $!"; flock(S, LOCK_EX) or die "flock() failed for $SEMAPHORE: $!"; open (FH, ">>$file") or die "Can't open $file: $!"; print "About to write\n"; print FH "I have written ($$)\n"; print "Written\n"; close FH; print "Going to sleep...\n"; sleep 10; print "Woken up...\n"; close S;