Hi - and thanks - for everyone, It works at last, but without using upload(): #!/usr/bin/perl use CGI; $q = new CGI; print $q->header, $q->start_html('title here'), $q->h1('Please fill this form'), $q->start_multipart_form, $q->filefield(-name=>'uploaded_file', -size=>50, -maxlength=>80), $q->submit, $q->end_form, $q->hr; $file=$q->param('uploaded_file'); print "$file is to be uploaded"; if (!$file && $q->cgi_error) { print $q->header(-status=>$q->cgi_error); exit 0; } open(FILE,">/download/$file"); while($bytesread=read($file,$buffer,1024)){ print FILE $buffer; } close(FILE); Thanks Hytham Shehab