in reply to Cann't create a file

Change
open ACCESS, ">> $log" || die "Cannot open $log: $!";
to be
open ACCESS, ">> $log" or die "Cannot open $log: $!"; #or open (ACCESS, ">> $log") || die "Cannot open $log: $!";


Reason: || has higher precedence than , causing
open ACCESS, ">> $log" || die "Cannot open $log: $!";
to be equivalent to
open ACCESS, ( ">> $log" || die "Cannot open $log: $!"; )
thus, no error message.