in reply to ftp multiple files revisited

You're not setting $i anywhere that I can see. You might be better off with something like this:

foreach $i (0 .. $#initList) { $command = <<eod; ftp -nv $rem_host << eof > $log; user $rem_user $rem_passwd mput $ftp_source_path[$i] $ftp_dest_path[$i] bye eof eod }

But I really think you'd be better of using Net::FTP.