perl expect模块变量匹配的问题。

代码如下:为什么变量$1中的值总是空?我觉得有可能是在expect函数返回后,$1中的值就被清除了。这个问题如何解决呢?
my $exp = new Expect;
$exp->spawn("telnet xx.xx.xx.xx");
$exp->expect(10, '-re', "login:");
$exp->send("root\n");
$exp->expect(10, '-re', "Password:");
$exp->send("password\n");
$exp->expect(10, '-re', "->");
$exp->send("uname -a\n");

$exp->expect(10, [qr/bjhv(\d*) 5.8 Generic/,  sub {my $num1 = $1;
                                                    print "The server id is $1\n";}]);
print "The server id is $1\n";