2011-04-22 17 views
2

私はPerlプログラミングの初心者です。現在、私はいくつかのコードを理解する作業をしています。Perl Expectのヘルプ

私はコードを期待Perlを理解する必要があり、コードのこの部分にラインがあり、以下に述べる:

私の$ expは=新しい期待。

$ exp-> spawn( "su");

私の理解は、私たちがクラスのインスタンスを作成し、2行目に子プロセスを作成することを示しています。

誰かが私をもっとはっきりと説明すれば、私は本当に彼らに感謝します。

+2

それはかなりのスポットです。あなたの質問は何ですか? –

答えて

3

まず第一に、私は自分自身を助ける助けてみましょう:

  • Perlでヘルプについてperldocをご確認ください。
  • Perlモジュールのヘルプについては、 CPANをチェックしてください。

Expectモジュールは、CPAN:Expectにあります。ビューの厳密な構文上の観点から

、あなたがやっているすべては、2つのメソッドを呼び出すされています。どちらの方法は、CPANで文書化され、そして、彼らは本当にあなたが(しゃれが意図していないことを期待何をしている

my $exp = Expect->new(); #Yes, the new Expect is a shorthand version 
$exp->spawn("su"); 

を)それらを実行する:最初のものはExpectオブジェクトを生成し、2つ目はパラメータなしでプロセス "su"を生成する。

これで、sendおよびexpectメソッドを使用して文字列をプロセスに送信するか、入力を求めるまで待つことができます。 CPANの例からまっすぐに:

# send some string there: 
$exp->send("string\n"); 

# then do some pattern matching with either the simple interface 
$patidx = $exp->expect($timeout, @match_patterns);