in reply to $SIG{INT} unlink problem

Your program is probably getting the sigint after it knows the name of the file but before it has actually opened it for writing.
-sauoq
"My two cents aren't worth a dime.";