http://qs321.pair.com?node_id=73403


in reply to net::ftp please

Net::FTP is actually part of the libnet distribution. The module is actually pretty solid, except that you have to check the return codes after every call. (I'm not a real fan of that style of code.) This is done by calling $ftp->ok() after every other $ftp call. The actual message is in two parts, code() and message(). So you end up doing:
use strict; use Net::FTP; my $ftpSite = "ftp.somesite.net"; my $username = "..."; my $password = "..."; my $ftp = Net::FTP->new( $ftpSite ) or die "No connect to '$ftpSite' : $@"; $ftp->login( $username, $password ); die $ftp->code(), ": ", $ftp->message() unless $ftp->ok(); # and so on...
I usually write a status method that retrieves and prints the status messages regardless of any errors, and then hiccups when not $ftp->ok(). So my code reads $ftp->func(); check( $ftp ); over and over again. But the end result is well worth it.

I hope that helps.