I've tried using the upload function. It returns undef, which, according to the man page, means the parameter is not a valid filehandle. But why not? I have a normal looking form field:
<input type="file" name="file_image" ...
I've done the test according to your second quote. There's definitely nothing coming back from:
my $handle_in = $cgi->upload('file_image');
But it's not a POST_MAX problem. That's set to -1, which means no limit.
There's a function called cgi_error(), but that's not returning anything either.