Your main problem is that you should use the file upload fieldname as a filehandle directly instead of trying to copy it into another variable. Don't try
$filename = $query->param($formfield) but rather
$input = <param($formfield)> The documention on CGI.pm goes into this in some detail.
Better yet, check out the copious examples of file uploading code found elsewhere in the site, such as (Ovid) Re: File Upload To Selected Directory (it doesn't matter that the example doesn't happen to be an image.)
Gary Blackburn
Trained Killer