use Fcntl ':flock';
open (CONTROLFILE,"+<$requestControlFile")
|| die("can't open $requestControlFile -> $!");
flock CONTROLFILE, LOCK_EX;
my @file = <CONTROLFILE>;
# do something to the data in @file
# then when you want to write it back...
seek CONTROLFILE, 0, 0;
truncate CONTROLFILE, 0;
print CONTROLFILE @file;
close CONTROLFILE;