in reply to How do you test an upload form?

Are you sure that WWW::Mechanize doesn't support it? i.e., did you try it (what was the error if any?)? I haven't, but i see in the docs for $mech->value() that it says:
If the field is of type file (file upload field), the value is always cleared to prevent remote sites from downloading your local files. To upload a file, specify its file name explicitly.
So mayb just using set_fields() or submit_form() normally with one of the values being the filename will do the trick?