foreach my $serverDir (split(',', $serverDirs)) { addMessage("Connecting to server(" . $props{'ftp_server'} . ") as " . $props{'ftp_username'} . "...\n"); $ftp = Net::FTP->new($props{'ftp_server'}, Debug => $isDebug, Passive => 1) or error("Cannot connect to " . $props{'ftp_server'} . ": $@"); addMessage("Connected...\n"); $ftp->login($props{'ftp_username'}, $props{'ftp_password'}) or error($props{'ftp_username'} . " cannot login to " . $props{'ftp_server'} . ": " . $ftp->message, 1); addMessage("Logged in...\n"); $ftp->cwd("$baseDir$serverDir"); addMessage("Reading $baseDir$serverDir\n"); foreach my $file (split(',', $props{'files_to_move'})) { $file .= ".$formattedDate"; my $fileSize = $ftp->size("$baseDir$serverDir$file"); addMessage(" getting $baseDir$serverDir$file to $destDir$serverDir$file ($fileSize bytes)..."); if ($fileSize > 0) { $ftp->get("$baseDir$serverDir$file", "$destDir$serverDir$file") or error($ftp->code . ":" . $ftp->message, 0); addMessage("done.\n"); } else { addMessage("\n Not getting file because it's empty, but creating an empty file anyway.\n"); `touch $destDir$serverDir$file`; } } $ftp->quit(); undef $ftp; }