in reply to apache & multipart/form-data

Your first stop should always be Apache's error_log. Alternatively you could use fatalsToBrowswer while debugging the problem:
use CGI::Carp qw(fatalsToBrowser);
This will send the error messages to your browser so you don't have to hunt for them in the error_log. You will only want to use fatalsToBrowser when debugging because it's a security risk to leave it in production code.

-- vek --