Рекомендуется использовать механизм блокировки файлов flock
в Perl.Его можно использовать для исключения доступа других файлов к файлу , если эти процессы также используют flock .Даже этот механизм будет некорректным с некоторыми системами (я смотрю на you , NFS).
Может быть более надежно работать с анонимным временным файлом, который другие процессы не будутзнать, и переименовать ваш файл, когда вы закончите с ним.
use File::Temp;
my ($fh, $obscure_filename) = tempfile();
print $fh "some data ...\n";
...
close $fh;
rename($obscure_filename, $the_real_name_of_the_file);