You want to connect to an FTP server and get or put files. You might want to automate the one-time transfer of many files or automatically mirror an entire section of an FTP server, for example.
Use the CPAN module Net::FTP:
use Net::FTP; $ftp = Net::FTP->new("ftp.host.com") or die "Can't connect: $@\n"; $ftp->login($username, $password) or die "Couldn't login\n"; $ftp->cwd($directory) or die "Couldn't change directory\n"; $ftp->get($filename) or die "Couldn't get $filename\n"; $ftp->put($filename) or die "Couldn't put $filename\n";
Using the Net::FTP module is a three-part process:
connect to a server, identify and
authenticate yourself, and
transfer files. All interaction with the FTP
server happens through method calls on a Net::FTP object. If an error
occurs, methods return
undef in scalar context or
an empty list in list context.
The connection is established with the
constructor. If an error occurs,
$@ is set to an
error message and
undef. The first argument is the hostname of the
FTP server and is optionally followed by named options:
$ftp = Net::FTP->new("ftp.host.com", Timeout => 30, Debug => 1) or die "Can't connect: $@\n";
Timeout option gives the number of seconds all
operations wait before giving up.
Debug sets the
debugging level (non-zero sends copies of all commands to STDERR).
Firewall takes a string as an argument, specifying
the machine acting as an FTP proxy.
Port lets you specify an alternate ...