in reply to CGI::Application and start_multipart_form stumper
Are you sure you are not just getting bit by the sticky fields in CGI.pm?
$q->param('rm', 'save_mode'); # hack?
If 'rm' already has a value, then CGI.pm will not overwrite it unless you also pass the -override => 1 option.
$q->param(-name => 'rm', -value => 'save_mode' -override => 1);
You can easily check this by looking at the generated HTML and making sure the runmode is what you expect it to be.
In Section
Seekers of Perl Wisdom