如何在telnet waitfor中匹配表达式时使perl脚本死掉?

时间:2015-02-05 23:26:29

标签: regex perl telnet

我想知道如何在表达式匹配时让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部分之前退出脚本。

1 个答案:

答案 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";
}