/ / Warum wird in Net :: FTP-> new work kein Arrayverweis für den Host-Parameter übergeben? - Perl, FTP, Libnet

Warum wird in Net :: FTP-> new work keine Array-Referenz für den Host-Parameter übergeben? - Perl, ftp, libnet

Ich baue einen FTP - Client mit Net :: FTP. In der Dokumentation wird angegeben, dass der neue Konstruktor eine hat Host Option, die eine Referenz auf ein Array mit Hosts sein kann, die nacheinander ausprobiert werden sollen. Ich scheine nicht in der Lage zu sein, dies zum Laufen zu bringen. Ich verwende ActivePerl unter Windows XP. Hier ist mein Code:

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

Und hier ist die Fehlermeldung:

Can"t connect: Net::FTP: Bad hostname "Host"

Antworten:

6 für die Antwort № 1

Auf den ersten Blick müssen Sie lediglich eine Referenz angeben:

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

aber es scheint etwas Flockiges zu sein Net::FTP Hier. Ich bin nicht sicher, ob jemand dies getestet hat. Ich habe momentan keine Zeit, um es zu debuggen, aber ich würde nur Folgendes empfehlen:

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

die "Could not connectn" unless $ftp;

Aktualisieren: Ich habe den Quellcode auf überprüft Net::FTP->new und es scheint keine Überprüfungen für eine übergebene Array-Referenz zu geben. Dies scheint der Fall zu sein, wenn Code und Dokumente nicht übereinstimmen.

Fehlerbericht abgelegt.

Aktualisieren:

Betreff: Re: [rt.cpan.org # 48001] Net :: FTP-> new (Host => $ arrayref) funktioniert nicht Datum: So, 19. Juli 2009, 11:35:14 -0500 An: bug-libnet [...] rt.cpan.org Von: Graham Barr [Text / Ebene 147b] >> Scheint, als ob der Code und die Dokumente nicht übereinstimmen. > > Ich bin mir nicht sicher, woher das in den Dokumenten kommt. Net :: FTP hat noch nie eine unterstützt > Array von Hosts