При использовании flock лучше всего использовать так называемые семафоры, например:
#!/usr/bin/perl -w
use Fcntl qw(:flock);
$sem = "/tmp/sem.sem";
sub get_lock {
open(SEM, ">$sem") || die "Невозможно создать семафор: $!";
flock(SEM, LOCK_EX) || die "Невозможно заблокировать семафор: $!"
}
sub release_lock {
close(SEM);
}
get_lock(); # ожидает бесконечно долго, до снятия защиты...
...
#Операции
...
release_lock()
|