什么是ftp请求返回(Perl)

时间:2013-07-27 22:25:37

标签: perl

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然后返回它?它实际上是什么回归?是上传还是下载?

3 个答案:

答案 0 :(得分:4)

它返回类object Net::FTP (这样,FTP连接已经建立,您的调用者代码可以使用该对象进行上传/下载文件,如你所愿,无需登录/连接)。

要了解如何使用Net::FTP个对象,请参阅its documentation中的示例,通常是$ftp->put()$ftp->get()来上传/下载文件。

答案 1 :(得分:1)

它不会启动任何文件传输。它只返回一个可用于发出请求的对象。返回时,建立FTP连接并完成身份验证,服务器正在等待下一个命令。

答案 2 :(得分:0)

你可以做几件事:

  1. 使用Data::Dumper 转储您感兴趣的变量。您会看到$ftp引用到包含的哈希很多不同的参赛作品。
  2. 阅读Perl ReferencesPerl Object Oriented Programming。你似乎并不熟悉引用的概念,这并不罕见。许多初学Perl书籍都不会过去,许多自学Perl专家也不了解它们。
  3. 阅读这两个教程将解释您需要了解的所有内容。我可以尝试直接回答你的问题,但我最终会重复这些教程,而且可能做得不好。

    使用Data::Dumper模块在​​返回语句之前转储$ftp,您将更好地了解它的真实情况。然后阅读教程。