2012-07-30 8 views
1

$ remote-> waitfor ('/ Logoff /');Perl 텔넷 로그인

때때로 서버를 사용할 수 없을 때 패턴 일치 시간이 초과되었다고 말하면서 오류가 발생합니다. 이 오류를 처리하고 싶습니다. 이 오류가 발생할 때마다 1 분 동안 스크립트를 잠자기 상태로 만들고 다시 로그인하려고합니다. 나는 이런 식으로 뭔가를 tryied 한

:

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

Aaaaand, 시도 할 때 무슨 일이 일어 났습니까? –

답변

2

"순 :: 텔넷"대부분의 방법은 오류를 처리하는하는 것은은 "errmode"옵션에 의해 정의되는 방법.

여기에는 물론 waitfor 메서드와 시간 초과 오류가 포함됩니다. 기본 "errmode"동작은 "죽습니다"입니다. 즉, waitfor 호출은 아무 것도 반환하지 않고 아무 곳으로도 이동하지 않습니다.

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

NB를 :

당신을 " 반환"는 " errmode"를 설정해야합니다, 확인하는 값을 가지고 당신이 waitfor에 추가 옵션을 지정, 당신은 설정해야 패턴 일치를 " 일치"옵션으로 지정하십시오.

+0

우수. 귀하의 빠른 답변 덕분에 잘 작동합니다. 위대한 업적을 유지하십시오. 다시 한번 대단히 감사합니다. – Mujeeb

+0

빠른 투표 또는 답변 수락? – Ouki