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

いや、うちの環境では問題なく動いてるんだけど。

自動で他所のサーバからログファイルを 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 モジュールを使う時はご注意を。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Perl で Net::FTP モジュールを使うとエラーが・・・

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2093

コメントする

このブログ記事について

このページは、shinodaが2012年5月 2日 01:13に書いたブログ記事です。

ひとつ前のブログ記事は「皇座山稲荷神社はジブリの映画にでも出てきそうな不思議空間だった」です。

次のブログ記事は「Web Platform Installer の画面に Visual Web Developer が出てこなかったのだが・・・」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら