1

$ remote-> waitfor('/ Logoff /');

サーバーが利用できないときにパターンマッチがタイムアウトしたというエラーが表示されることがあります。このエラーを処理したいと思います。このエラーが発生するたびに、スクリプトを1分間スリープさせて、再ログインを試みます。

私はこのようなことを試みました:

  if($remote->waitfor('/Logoff/')) 
   {
     #proceed login perform intended operations.
   }
   else
   {
      sleep(60);#control is not coming here. returning pattern match timed-out error.
   }
4

1 に答える 1

2

ほとんどの「Net::Telnet」メソッドがエラーを処理する方法は、「errmode」オプションによって定義されます。

もちろん、これにはwaitforメソッドエラーとタイムアウトエラーが含まれます。デフォルトの「errmode」の動作は「die」です。これは、waitfor呼び出しが何も返さず、どこにも行かないことを意味します。

チェックする値を設定するには、「 errmode」を「return」に設定する必要があります。

 if($remote->waitfor( -match => '/Logoff/', -errmode => 'return' )) 
   {
     #proceed login perform intended operations.
   }
   else
   {
      sleep(60); #returning pattern match timed-out error (or something else).
   }

注意:に追加のオプションを指定する場合は、「一致waitfor」オプションを使用して一致パターンを設定する必要があります。

于 2012-07-30T08:37:47.770 に答える