use Fcntl ':flock'; my $file = 'file.lck'; open my $lfh, ">>$file" or die "Can't access $file : $!\n"; if (flock $lfh, LOCK_EX){ sleep 1 while (time - (stat $file)[9] < 1); # # Send your Amazon requests here # utime time, time, $file; }else{ print "Can't lock $file: $!"; } close $lfh;