Net::FTP breaks if networking conditions aren't near-perfect, which can happen somewhat frequently. It might be worthwhile to support some other FTP upload method, such as libcurl-easy-perl. libcurl-easy-perl could also be used for the other protocols that libcurl supports, as an option...