关于alarm计时器的使用

关于alarm计时器的使用

#/usr/bin/perl -w
use Config;
$SIG{ALRM}=\&timed_out;
eval{
alarm 10;
my $bug=<>;
alarm(0);
print "pig\n";
};
sub timed_out{
die "Got Tired of waiting\n";
}
if($@=~/Got Tired of waiting/){
        print "Time is out. Processing with default\n";
}

这样一段代码,为什么它过了n久也没什么反应的说?
不是应该超过10s,就print "Time is out. Processing with default\n";了吗?
那位牛人解释一下?

//bow
你用的那个版本的perl?我用你这段代码在perl5.8.8环境下是正常的!

另外你的第一行perl程序声明那里少写了一个“!”