in reply to WWW::Mechanize erroring out without producing an error line

According to the WWW::Mechanize documentation, submit_form returns a HTTP::Response object, so you should be looking at that for errors. Even if it does return false for some errors, I'm pretty sure it can't set $! to something useful for your error message (according to perlvar, it can only be set to system error messages, see also "How do I return false and set an error in special variable $!"). That said, my quick look at the mech code leads me to think that it throws exceptions with die rather than return errors.

You might want to look at what's going on at line 1492 of your /usr/lib/perl5/site_perl/5.8.5/WWW/Mechanize.pm. My guess is that since you gave it a bogus form name, it's tossing you a die. You can catch that with eval.