in reply to random problem with read

Let Perl tell you. Check the success of your open call. When it fails, the reason will be in the special variable $!. The common idiom is open or die.

open(OUTFILE, ">$save_directory/$file_name") or die "Couldn't open $save_directory/$file_name for write: +$!\n";
-sauoq
"My two cents aren't worth a dime.";