use POSIX qw(strftime); use Net::FTP; foreach my $host(@hosts) { $ftp = Net::FTP->new($host); # you probably want to use a different login $ftp->login("anonymous",'nairod@wherever.net'); # just in case... $ftp->binary(); $ftp->cwd("/whatever/place/shars/are"); my @files=grep /${host}shar\d{6}\.\d{4}/,$ftp->ls(); foreach(@files) { $ftp->get($_); } $ftp->quit(); }