有关$SIG{INT}处理函数的问题

这个……真的。按两次也能继续。。。 Windows XP SP2, Perl 5.8.8(ActivePerl-5.8.8.820)
崩溃了。。。。。。。。。好吧,我的问题,rp问题。。。。
呃,原来我是5.6.1
果然是perl版本的问题,昨天回家后试了一下,类似程序的能够正确处理两个个Ctrl+C。家里是5.10
实在不行你就这样:检测到Ctrl-C之后马上把正在进行的工作进行到一个可以中断的状态,
比如下载的话就下载完一个文件,数据库的话就先提交或回滚事务等
这样即使第二次Ctrl-C中断了工作,也不会造成太大影响。

当然不是完全的解决办法,只是减少错误概率而已
#!/usr/bin/perl

$int = 0;
$SIG{INT} = sub { $int = 1; };

while (1) {
    print "Processing..\n";
    sleep 1;
    if ($int == 1) {
        print "Break? ";
        $_ = <>;
        chomp;
        if (/y/i) {
            exit;
        }
        else {
            $int = 0;
        }
    }
}

这个在我公司服务器上跑是正常的,哈哈..Unix的