我想知道如何在表达式匹配时让telnet waitfor函数进入errmode。当表达式不匹配时,它将等待Timeout指定的时间并继续。例如:
$ok = my_tel->waitfor('/I have matched/', Timeout => 5)
if(ok){
die "I have matched. Time to die /n";
}
但是,使用上面的代码,脚本将检查telnet,超时,并在执行if部分之前退出脚本。
答案 0 :(得分:0)
我假设您使用的是Net::Telnet
?
如果您指定的错误模式为return
,则waitfor
将返回undef
而不是死亡。您的代码看起来像这样
my $matched = $my_tel->waitfor(
Match => '/I have matched/',
Timeout => 5,
Errmode => 'return',
);
if ( $matched ) {
die "I have matched. Time to die/n";
}