完整的Net :: FTP文档在哪里?

时间:2012-03-13 18:13:03

标签: perl module documentation ftp perl-module

我正在为Perl中的FTP服务器编写测试,但我无法获得我想要的消息。目前我写了一个看起来像这样的迷你程序;

my $ftp = Net::FTP->new($host, Debug => 0) or die "Cannot connect to $host: $@";
print @{[ $ftp->message ]}, "\n";

哪种方法效果很好,但我的回答是;

FTP SERVER

而不是实际的反应;

220 FTP SERVER

除了基本方法和选项之外,我找不到任何其他信息。有谁知道在哪里可以找到完整的文档?

2 个答案:

答案 0 :(得分:2)

Net::FTP网站上提供了Perl Programming Documentation的第一份完整文档。这是一个非常好的小页面,显示了所有标准的Perl模块,Perl教程,Perl语言指南,FAQ以及其他 内置 Perl文档。没错,本网站上的所有信息都已在您的计算机上。 1

您需要的只是perldoc命令。例如,Perl函数 shift 做什么?

   $ perldoc -f shift
   shift ARRAY
   shift   Shifts the first value of the array off and returns it,
           shortening the array by 1 and moving everything down.  If there
           are no elements in the array, returns the undefined value.  If
           ARRAY is omitted, shifts the @_ array within the lexical scope
           of subroutines and formats, and the @ARGV array outside a
           subroutine and also within the lexical scopes established by
           the "eval STRING", "BEGIN {}", "INIT {}", "CHECK {}",
           "UNITCHECK {}" and "END {}" constructs.

           See also "unshift", "push", and "pop".  "shift" and "unshift"
           do the same thing to the left end of an array that "pop" and
           "push" do to the right end.

几乎所有模块都有相同的内置文档。由于Net::FTP是标准模块集的一部分,因此您只需说出perldoc Net::FTP并获取完整的文档。

这是Perl POD(普通旧文档)文档系统的一部分。如果您对Perl编程非常认真,我建议您了解Perl POD并在脚本中使用它。实际上,有一个很好的标准模块Pod::Usage,可用于直接从POD文档中显示程序帮助文本。

好的,但如果该模块的完整文档怎么办......呃技术术语是什么?哦,是啊......糟透了?如果文档根本不包含您要查找的信息怎么办?

在这种情况下,你将不得不卷起袖子深入研究代码。同样,perldoc也可以帮助您:

 $ perldoc -l Net::FTP
 /System/Library/Perl/5.12/Net/FTP.pm

现在,您知道模块在系统中的存储位置。您现在可以使用自己喜欢的编辑器来查看代码。

还有一件小事:在Net::FTP的代码中,有这样的陈述:

@ISA     = qw(Exporter Net::Cmd IO::Socket::INET);

这意味着Net::FTPNet::CmdIO::Socket::INET的子类。您可能需要在这些模块上执行perldoc以获取更多信息。很可能是您收到的错误消息是由这两个类中的一个生成的,而不是Net::FTP生成的。

我可以在代码中看到您收到的邮件来自Net::Cmd->message。你可能不得不深入研究,看看为什么你没有得到你认为应该的信息。从我所看到的,看起来它只是从FTP服务器本身返回消息。可能是您连接的FTP服务器基于不返回响应代码的旧代码。


1 请注意,Perl编程文档网站的默认文档适用于Perl 5.14,它可能是您的Perl版本,也可能不是。您可以通过网页左侧的下拉菜单调整Perl版本。尽管如此,由于各种原因,此网站可能无法反映您的系统上安装的您的版本的Perl。

答案 1 :(得分:0)

http://p3rl.org/Net::FTP#Methods-for-the-adventurous

  

Net :: FTP继承自Net :: Cmd,因此Net :: Cmd中定义的方法可用于向远程FTP服务器发送命令。

因此,请查看Net::Cmd您找到message最好朋友code的位置。