2012-03-13 10 views
0

私はPerlでFTPサーバーのテストを書いていますが、私が望むメッセージを得ることができません。現在私はこのようなミニプログラムを書いています。完全なNet :: FTPドキュメントはどこにありますか?

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

これはうまく機能しますが、私の応答は次のとおりです。

FTP SERVER 

実際の応答ではなく、

220 FTP SERVER 

基本的な方法とオプション以外の情報はありません。誰もが完全なドキュメントを見つける場所を知っていますか?

答えて

2

Net::FTPの最初の完全なドキュメントはPerl Programming DocumentationのWebサイトから入手できます。これはPerlの標準モジュール、Perlチュートリアル、Perl言語ガイド、FAQ、その他を組み込んだ Perlのドキュメントを表示するとても良い小さなページです。そうです、このウェブサイトのすべての情報はすでにあなたのコンピュータ上にあります。

perldocコマンドが必要です。たとえば、Perlの関数は、のシフトに何をしますか?

$ 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(Plain old doc)のドキュメントシステムの一部です。 Perlのプログラミングについて真剣なら、Perl PODについて学び、スクリプトで使用することをお勧めします。実際、Pod::Usageと呼ばれる素敵な標準モジュールがあり、PODのドキュメントからプログラムのヘルプテキストを直接表示することができます。

いいえ、そのモジュールの完全なドキュメント...技術用語は何ですか?ああええ...吸う?ドキュメントに探している情報が含まれていない場合はどうなりますか?

この場合、あなたは袖を巻き上げてコードに深入りする必要があります。ここでも、perldocはあまりにもそこにあなたを助けることができます:モジュールがシステムに保存されている場所

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

今、あなたが知っています。これで、好きなエディタを使ってコードを読むことができます。

ただ、もう一つの小さな事は:

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

Net::FTPNet::CmdIO::Socket::INETのサブクラスであることを意味しますNet::FTPのコードでは、この文があります。詳細については、これらのモジュールでperldocを実行する必要があります。取得しているエラーメッセージがNet::FTPではなく、これら2つのクラスのいずれかによって生成されている可能性があります。

コードでは、表示されているメッセージがNet::Cmd->messageであることがわかります。あなたはそれを掘り下げて、あなたが思うべきメッセージが得られない理由を知る必要があります。私が見ることのできるところからは、単にFTPサーバー自体からメッセージを返すように見えます。接続しているFTPサーバーが応答コードを返さない古いコードに基づいている可能性があります。 Perlのプログラミング・ドキュメントWebサイトのデフォルトのドキュメントは、またはあなたのPerlのバージョンであってもなくてもよいのPerl 5.14のためのものであることを


注意。 Webページの左側にあるドロップダウンメニューからPerlのバージョンを調整することができます。それでも、さまざまな理由から、このウェブサイトには、のシステムにのPerlがインストールされている可能性があります。

0

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

はNet :: FTPはネットで定義されたメソッドので、ネット:: Cmdをから継承:: CmdをリモートFTPサーバーにコマンドを送信するために使用することができます。だから、

、またあなたがmessage親友、codeを見つけるNet::Cmdに見えます。

関連する問題