my ( $addr, $usr, $pwd, $ascii, $active, $timeout ) = @_;
my $ftp;
# Set up new FTP with active mode and user-specified timeout...
if ( $active and $timeout )
{
$ftp = Net::FTP -> new ( $addr, Passive => 0, Timeout => $timeout )
or die "Failed to connect to FTP (w/ active, timeout): $addr";
}
# Login to new FTP
$ftp -> login ( $usr, $pwd )
or die "Failed to login to FTP: " . $ftp->message;
# Set ASCII or binary transfer modes
if ( $ascii ) { $ftp -> ascii(); }
else { $ftp -> binary(); }
print "LOGIN: $addr\n";
return $ftp;
}
有人能解释一下上面做了什么吗?它登录到ftp然后返回它?它实际上是什么回归?是上传还是下载?
答案 0 :(得分:4)
它返回类object的 Net::FTP (这样,FTP连接已经建立,您的调用者代码可以使用该对象进行上传/下载文件,如你所愿,无需登录/连接)。
要了解如何使用Net::FTP个对象,请参阅its documentation中的示例,通常是$ftp->put()
和$ftp->get()
来上传/下载文件。
答案 1 :(得分:1)
它不会启动任何文件传输。它只返回一个可用于发出请求的对象。返回时,建立FTP连接并完成身份验证,服务器正在等待下一个命令。
答案 2 :(得分:0)
你可以做几件事:
$ftp
是引用到包含的哈希很多不同的参赛作品。阅读这两个教程将解释您需要了解的所有内容。我可以尝试直接回答你的问题,但我最终会重复这些教程,而且可能做得不好。
使用Data::Dumper
模块在返回语句之前转储$ftp
,您将更好地了解它的真实情况。然后阅读教程。