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!
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.