Being an FTP Client
Problem
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.
Solution
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";Discussion
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 new
constructor. If an error occurs, $@ is set to an
error message and new returns
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";The 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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access