# undef may be returned if it's not a valid file handle if ( my $io_handle = $q->upload('field_name') ) { open ( my $out_file,">$upload_dir/$filename" ) or die "Couldn't create upload file: $!"; while ( my $bytesread = $io_handle->read($buffer,1024) ) { print $out_file $buffer; } }