Lock files using the flock() call. If the file to be locked does not exist,
then the file is created. If the file was created then it will be removed
when it is unlocked assuming it's still an empty file.

Locks can be created by new'ing a File::Flock object. Such locks are
automatically removed when the object goes out of scope. The unlock()
method may also be used.

lock_rename() is used to tell File::Flock when a file has been renamed (and
thus the internal locking data that is stored based on the filename should
be moved to a new name). unlock() the new name rather than the original
name.

Locks are released on process exit when the process that created the lock
exits. Subprocesses that exit do not remove locks. Use forget_locks() or
POSIX::_exit() to prevent unlocking on process exit.

Homepage:
https://metacpan.org/pod/File::Flock
