#!/usr/bin/perl
use strict;
use warnings;
use Fcntl qw(:flock);
open our $lockfile, '<', $0 || die $!;
if ( (1 == 1) || (!flock $lockfile, LOCK_EX | LOCK_NB) ) {
print "in loop\n";
sleep 30;
if (flock $lockfile, LOCK_EX | LOCK_NB) {
print "locked\n";
} else {
print "not locked\n";
}
sleep 30;
}
####
in loop
locked
####
in loop
not locked