#!/usr/bin/perl -w use strict; use Fcntl ':flock'; # import LOCK_* constants sub lock { flock(FH,LOCK_EX); # and, in case someone appended # while we were waiting... seek(FH, 0, 2); } sub unlock { flock(FH,LOCK_UN); } my $filename = "plain-db.pdb"; open(FH, ">>$filename") or die "Can't open file ($filename): $!"; lock(); # do what ever you want with it unlock();