Viendo la documentación del módulo encontré esto
Cita: login ([LOGIN [,PASSWORD [, ACCOUNT] ] ])
Log into the remote FTP server with the given login information. If no arguments are given then the Net::FTP uses the Net::Netrc package to lookup the login information for the connected host. If no information is found then a login of anonymous is used. If no password is given and the login is anonymous then anonymous@ will be used for password.
If the connection is via a firewall then the authorize method will be called with no arguments.
authorize ( [AUTH [, RESP]])
This is a protocol used by some firewall ftp proxies. It is used to authorise the user to send data out. If both arguments are not specified then authorize uses Net::Netrc to do a lookup.
Talvés necesites usar la función authorize...
Checkea también la página de ejemplos
http://www.csh.rit.edu/~adam/Progs/programs.html
Saludos