in reply to Undefined subroutine CGI::upload

I haven't got any ideas about exactly what is causing the problem, but I'll make a few suggestions, and there are a few things you can clean up.

#!/usr/bin/perl -w use strict; use CGI qw/:standard/; use CGI::Carp qw/fatalsToBrowser/;

You only need to do use CGI; once - decide which routine you want to load into your namespace - in this case standard.
RTFM perldoc CGI for all the different routines that are available if standard doesn't do it for you.

Be a little more consistent how you quote things - I've changed the code fragment above so that it's all quoted with slashes - it just makes it easier to read.

Note the removal of the space from use CGI::Carp qw/fatalsToBrowser/; - just a small thing.

As far as the problem itself goes - look at any lines that might have something to do with the problem.
What happens if you alter or remove the CGI::POST_MAX and CGI::DISABLE_UPLOADS lines?

Cheers

BazB.

Update: As suggested by chromatic, it seems that jerrygarciuh is using a rather old version of CGI.
The solution is left as an exercise for the reader.