=encoding euc-jp =head1 名前 Net::Cmd - ネットワーク・コマンド クラス (FTP、SMTPなどによって使われます) =head1 概要 use Net::Cmd; @ISA = qw(Net::Cmd); =head1 説明 CはIO::Handleのサブクラスが継承することができるメソッドを 集めたものです。これらのメソッドはFTPやSMTPといった、コマンドをベースとした プロトコルに必要とされる機能を実装しています。 =head1 ユーザ・メソッド これらのメソッドがCオブジェクトへのユーザ・インターフェースを提供します。 =over 4 =item debug ( VALUE ) このオブジェクトのデバッグ情報のレベルを設定します。Cが指定されなければ、 現在のステータスを返します。そうでなければ、ステータスはCに変更され、 前の値を返します。 パッケージが違えば、異なるデバッグ・レベルを実装するかもしれません。 全てのコマンドと応答での0でない値は標準エラー出力(STDERR)に出力されます。 CがCであれば、デバッグレベルは、このクラスのためのデフォルトの デバッグレベルに設定されます。 このメソッドは与えられたクラスのデフォルトのデバッグレベルを設定/取得するため、 staticメソッドとしても呼び出すことができます。 =item message () 最後のコマンドから返されたテキストメッセージを返します。 =item code () 最後のコマンドの3桁の数字コードを返します。 コマンドが保留中であれば0が返されます =item ok () 最後のコード値が0より大きく400より小さければ0でない値を返します。 これは大抵のコマンド・サーバではtrueになります。これを持たない サーバでは、このメソッドを上書きすることもできます。 =item status () 現在のステータス・コードでの最も特徴的な数字を返します。もしコマンドが 保留中であればCが返されます。 =item datasend ( DATA ) リモート・サーバにデータを送信します。このときLFはCRLFに変換されます。 '.'(ピリオド)で始まるすべての行には、前にもう1つ'.'(ピリオド) が 付けられます。Cには配列もしくは配列のリファレンスを指定します。 =item dataend () リモート・サーバへのデータの送信を終了させます。 既に送られたデータをCRLF付きで終了させ、伝送を完了させるための '.CRLF'を送信することにより明確に行われます。 一度データが送られるとC呼び出しは、Cを呼び出し、 CがCMD_OKであればtrueを返します。 =back =head1 クラス・メソッド これらのメソッドはユーザーによって呼び出されるのではなく、 Cのサブクラスによって使われる、あるいはオーバーライドされる ことが想定されています。 =over 4 =item debug_print ( DIR, TEXT ) デバッグ情報を出力します。Cは方向を示し、trueはサーバーに送信される データを示します。標準エラー出力に出力される前にCを呼びます。 =item debug_text ( TEXT ) デバッグ情報を出力するために呼ばれます。TEXTは送信される文字列です。 このメソッドは出力される文字列を返します。 これは主に、パスワードが送信されるけれどデバッグ情報では表示したくない というFTPのようなモジュールで使われることに意味があります。 =item command ( CMD [, ARGS, ... ]) コマンド・サーバにコマンドを送信します。すべての引数はまず空白とCRLFを付けて、 1つにまとめられます。そしてその文字列がコマンド・サーバーに送信されます。 失敗した場合にはundefが返ります。 =item unsupported () ステータスコードを580に設定し、レスポンス・テキストを'Unsupported command'にします。 0を返します。 =item response () サーバからのレスポンスを取得します。成功すればステータスのも最も特徴的な数字が返ります。 タイムアウトなどで失敗すれば、Iが返されます。 =item parse_response ( TEXT ) このメソッドは1つの引数をもつメソッドとしてCにより呼び出されます。 3桁のステータス・コードと、これが複数行の応答の一部であり、この行はリストでは ないときにはtrueになるフラグという2つの値をもつ配列を返します。 =item getline () CRLFで区切られた1行をリモートサーバから取り出します。 失敗するとIを返します。 B<注意>: なんらかの理由でこのメソッドを使わないのであれば、あなたのメソッドのなかに、 いくつかCの呼び出しを入れることを忘れないで下さい。 =item ungetline ( TEXT ) サーバからのテキスト行の取り出しを元に戻します。 =item read_until_dot () リモートサーバからデータを、1つの'.'(ピリオド)だけの行まで読み込みます。 '..'で始まるすべての行は、最初の'.'が削除されます。 行の内容が入ったリストへのリファレンスが返されます。失敗するとIです。 =item tied_fh () Net::Cmdオブジェクトに結び付けられたファイルハンドルを返します。 コマンドを発行した後、read() や <>を使って、このファイルハンドルから 読み込むことが出来ます。最後のドットにぶつかると、ファイルハンドルは Eofを返します。 同様に、書き込まれるデータを期待しているコマンドを発行した後、 そのサーバーにデータを送信するため、そのファイルハンドルに 書き込むことができます。 この例については、Net::POP3 と Net::SMTP をご覧ください。 =back =head1 EXPORTS Cは6つのサブルーチンをエキスポートします。そのうちの5つ C、 C、C、C、Cは C と Cの可能な結果に対応します。6番目はCです。 =head1 作者 Graham Barr =head1 著作権(COPYRIGHT) Copyright (c) 1995-1997 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =for html
I<$Id: Cmd.pod,v 1.2 2011/01/27 13:15:11 iwai Exp $>