電気ウナギ的○○

About Home

Perl で Net::FTP モジュールを使うとエラーが・・・

shinoda (2012年5月 2日 01:13)
いや、うちの環境では問題なく動いてるんだけど。

自動で他所のサーバからログファイルを FTP で get してきてほげほげするプログラムを Perl で書いたのだが、FTP 処理に Net::FTP モジュールを使っている。

うちの社内環境では問題なく動くのだが、お客さんとこのサーバに持ち込むとエラーが出てしまう。

Can't use an undefined value as a symbol reference at /usr/lib/perl5/5.8.5/Net/FTP/dataconn.pm line 53.

という具合。
まあ、Net::FTP モジュールのバージョンが違うんだろうけど。(お客さんところのバージョンを調べるのを忘れていたが、Perl のバージョンはうちは v5.10.1、お客さんのところは v5.8.5。Net::FTP モジュールのバージョンも随分違うのだろう。但し、dataconn.pm のバージョンは同じだった)

$ftp->get($remote_file, $local_file) でファイルの取得をするところで発生している。

ググってみるとけっこうこのエラーで悩んでる人いるなあ。
ただ、日本語ページで解決策が書かれたものは無かった。
英語のフォーラムの書き込みを見ると、どうも FTP サーバに接続時に、明示的にパッシブモードの指定をしないといかんようじゃねえ。

ということで、接続処理のところを、

$ftp = Net::FTP->new($host);
 ↓
$ftp = Net::FTP->new($host, Debug=>0, Passive=>0);

このように修正したらエラーは出なくなった。
(Debug はおまけね)

古いバージョンの Net::FTP モジュールを使う時はご注意を。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2093

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE