问一个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

请较如何解决此问题啊,谢谢!