This is outside my realm because I've never tried it, but from what I understand about WWW::Mechanize, this might be the sort of task it would be good at. (I'm not sure what dependencies it might have on other modules.) You'd need to inspect the source html of the UPS pages involved, in order to determine the names of the input parameters you need to set, etc.