in reply to Uploading Script Errors

I agree with Fastolfe, and think I can diagnose the symptom.

When you put the filehandles into an array, you're stringifying them, which keeps the name but removes the filehandle magic. I'd rather do this:

foreach my $param (qw( file1 file2 file3 file4 )) { my $file = $query->param('param'); # everything else as before }
This way, you don't have to create extra variables with numeric suffixes (always a bad sign). Another approach would be to use an array to hold these in the beginning, or just get rid of the double quotes around the variables -- that's what's the real problem, I'm sure of it.