http://www.perlmonks.org?node_id=611966


in reply to FTP multiple files

Hi DV, Try like this,

#!/usr/bin/perl use warnings; use strict; use Net::FTP; use Cwd; $|++; # Autoflush my $server = "172.146.140.140"; my $username = "test"; my $pass = "test"; my $ftp; print "Connecting to $server.."; # Set up connection $ftp = Net::FTP->new( $server, Passive => 1, Debug => 0 ) or die $@; print "..authenticating.."; # Log in... $ftp->login( $username, $pass ) or die $ftp->message; print "..done!\n"; my @transferFileList = glob "*.log"; print $ftp->pwd (), "\n"; $ftp->cwd('somefolder') or die $ftp->message; print $ftp->pwd (), "\n"; $ftp->binary(); for (@transferFileList){ print "$_\n"; $ftp->put(cwd . "\\$_") or die $ftp->message; } print "Logging out.."; $ftp->quit or die $ftp->message; print "..done!\n";

1. The glob function will listout the files name only(without path).

2. No need to connect ftp for each and every file.

3. Always use pragma (strict and warnings).

Regards,
Velusamy R.


eval"print uc\"\\c$_\""for split'','j)@,/6%@0%2,`e@3!-9v2)/@|6%,53!-9@2~j';