open(SEM, ">semaphore_file") || die "Cannot create semaphore $!"; flock(SEM, LOCK_EX) || die "Lock failed: $!"; #some code close(SEM);