use CGI; my $query = CGI->new(); &_upload_file($query->param('my_upload_field')); #### use CGI; my $query = CGI->new(); my $uploaded_filehandle = $query->upload('my_upload_field') or print_error_page("Sorry, you must upload a file..."); &_upload_file( $uploaded_filehandle ); #### use CGI; use File::Copy; ## in main... my $query = CGI->new(); my $uploaded_filehandle = $query->upload('my_upload_field') or print_error_page("Sorry, you must upload a file..."); my $filename = $query->param('my_upload_field'); &_upload_file( $uploaded_filehandle, $filename ); sub _upload_file { my ($uploaded_fh, $orig_filename) = @_; my $dest_filename = $orig_filename; $dest_filename =~ s{ ^.* ( \\ | \/ ) }{}x; copy($uploaded_fh, $dest_filename) or die "Couldn't copy file to '$dest_filename': $!; stopped"; } #### use CGI::Carp 'fatalsToBrowser';