Проверьте Net :: Lite :: FTP , обзор модуля, кажется, делает именно то, что вам нужно. Я скопировал это здесь для справки:
use Net::Lite::FTP;
my $tlsftp=Net::Lite::FTP->new();
$tlsftp->open("ftp.tls.pl","21");
$tlsftp->user("user");
$tlsftp->pass("password");
$tlsftp->cwd("pub");
my $files=$tlsftp->nlst("*.exe");
foreach $f (@files) {
$tlsftp->get($f);
};