use Net::FTP; my $ftphost = 'ftp.ostrich.com'; my $timeout = 600; # seconds, default is 120 my $retries = 5; for (1 .. $retries) { last if $ftp = Net::FTP->new("$ftphost", BlockSize => 20480, Timeout => $timeout); } die("Couldn't connect to $ftphost in $retries attempts: $@") unless($ftp); ...