use strict; use warnings; use Fcntl qw(:DEFAULT :flock); sysopen(my $fh, 'filename', O_RDWR | O_CREAT) or die "Can't sysopen"; flock($fh, LOCK_EX) or die "Can't get lock"; print "OK - opened file with lock in place.\n";