使用退出后,我似乎无法重新使用 Net::FTP 对象。
这是预期的吗?我无法从文档(cpan)中分辨出来。
作为一种解决方法,每次我需要执行一批 ftp 操作时,我都会创建一个新的 Net::FTP 对象。这似乎很浪费。
以下示例显示:初始登录成功,打印根目录 ls,退出(套接字关闭),登录失败并显示 ftp 消息“连接已关闭”。
#!/usr/bin/env perl
use strict;
use warnings;
use Net::FTP;
my $hostname = 'foo';
my $username = 'bar';
my $password = 'baz';
# successful first pass
my $ftp = Net::FTP->new( $hostname ) or die "cannot connect to $hostname: $@";
$ftp->login( $username, $password ) or die "cannot login: ", $ftp->message;
map { print "ls_output: $_\n" } $ftp->ls; # success
$ftp->quit or die "cannot close connection: ", $ftp->message;
# re-use attempt
$ftp->login( $username, $password ) or die "cannot login: ", $ftp->message;
# never gets here since re-use attempt fails
print "done!\n";