According to the CGI perldoc you need to make sure to start your form code with start_multipart_form... are you doing that? Also it should be my $filehandle = param('file') or die "$!"; according to the same POD.
Comment on (ichi) Re: Uploading a File with CGI.pm