http://qs321.pair.com?node_id=1225898


in reply to Beginners guide to Net::FTP

I was having a major headache with Net::FTP recently on my raspberry pi. I found that this code:
use Net::FTP; $ftp = Net::FTP->new("xxx", Debug => 1) or die "Cannot connect to host: $@"; $ftp->login("xxx",'xxx') or die "Cannot login ", $ftp->message; $ftp->cwd("xxx") or die "Cannot change working directory ", $ftp->message; $ftp->put("test.txt") or die "put failed ", $ftp->message; $ftp->quit;
Didn't work and I got the error: 502 'PORT' command not implemented. I tried this on both Raspbian and Arch Arm. The same code worked fine from a windows box, however. On windows, I noticed that put behaved differently, putting the connection into PASV mode before transferring the file. On linux this didn't happen. I solved the issue by putting the entire connection into PASV mode (calling pasv() before put() didn't work):
$ftp = Net::FTP->new("xxx", Debug => 1, Passive => 1) or die "Cannot connect to host: $@";
This worked fine. Just putting this here in case someone else has the issue!