2

Net::FTPを使用して FTP クライアントを構築しています。ドキュメントには、新しいコンストラクターには、Host順番に試すホストを持つ配列への参照になるオプションがあると記載されています。これを機能させることができないようです。Windows XP で ActivePerl を使用しています。これが私のコードです:

@try_these = ("turing.unh.edu", "euler.unh.edu");
$ftp = Net::FTP->new(Host => @try_these)
or die "Can't connect: $@\n";

エラーメッセージは次のとおりです。

Can't connect: Net::FTP: Bad hostname 'Host'
4

1 に答える 1

6

一見すると、参照を提供するだけでよいように見えます。

my $ftp = Net::FTP->new(Host => \@try_these);

しかし、ここには不安定なものがあるようNet::FTPです。誰かがこれをテストしたかどうかはわかりません。今はデバッグする時間がありませんが、次のことをお勧めします。

my $ftp;
for my $host ( @try_these ) {
    warn "Attempting to connect to '$host'\n";
    $ftp = Net::FTP->new( $host ) and last;
}

die "Could not connect\n" unless $ftp;

更新:ソース コードを確認Net::FTP->newしましたが、渡された配列参照のチェックがないようです。これは、コードとドキュメントが一致していない場合のようです。

バグレポートが提出されました。

アップデート:

件名: Re: [rt.cpan.org #48001] Net::FTP->new(Host => $arrayref) が機能しない
日付: 2009 年 7 月 19 日 (日) 11:35:14 -0500
宛先: bug-libnet[...]rt.cpan.org
From: Graham Barr [text/plain 147b]
> > コードとドキュメントの不一致のようです。
>
> それがドキュメントのどこから来たのかわからない、Net::FTP は決してサポートしていない
> ホストの配列
于 2009-07-18T22:27:47.010 に答える