perl 的expect模块如何处理timeout

perl 的expect模块如何处理timeout

perl 的expect模块如何处理timeout
程序:

my $exp = Expect->spawn("telnet 1.1.1.1");
$exp->expect(10=>sub {$exp->print("不能连接")},
      [qr/username:/=>sub {
                         sleep(1);
                         $exp->send("root\n");
                         sleep(1);
                        $exp->expect("assword");
                    }])

我想实现这样目标:
如果能telnet到交换机,则根据username提示,输入密码,然后继续;
如果不能telnet到交换机,则在10秒等待后自动退出,并提示“不能连接”,如果能将“不能连接该ip地址”输入到文件中就更好了

但是:
上面的程序执行时失败,报:
expect(): Unknown pattern ref CODE(0x26fa5 at ./zlj.pl line 61

请较如何解决此问题啊,谢谢!
为什么不用telnet模块??.
telnet模块能解决该问题吗.
telnet模块能解决该问题吗?
telnet 模块可以设置timeo.
telnet 模块可以设置timeout的呀~ ~
我用 telnet 这样$j = new.
我用 telnet 这样$j = new Net::Telnet (Timeout => 2, Port => 80);
但是超时的时候程序就中止了 报一个错timeout的,不知道能不能把这个报错付给变量
我用 telnet 这样$j = new.
我用 telnet 这样$j = new Net::Telnet (Timeout => 2, Port => 80);
但是超时的时候程序就中止了 报一个错timeout的,不知道能不能把这个报错付给变量