if (!fork) { # doing stuff in child process... # open your file handle here while (my $bytesread = read($filesource, my $buffer,1024)) { print OUTFILE $buffer; } # you could also write to a 'status' file and display that back to the client ;) exit; } print $cgi->header(); print "Your upload is in process... see this status.html page for the status (changes every once in awhile :)\n"; exit;