Perl开发: SIG{INT}理解
中断信号 的handle函数可能在执行的过程中被进一步的中断,如果这个handle函数执行过程比较长。并且会recursively调用之前的中断Handle函数。所以最保险的做法是在handle函数声明内部的SIG函数。
参考的demo code
$int = 0;
$SIG{INT} = sub { $int = 1;
$SIG{INT} = 'IGNORE';
$ index=0;
while(1)
{
print "inside INT $index ....\n";
$index++;
sleep(2);
if($index >500)
{
last;
}
}
};
while (1) {
print "Processing..\n";
sleep 1;
if ($int == 1) {
print "Break? ";
$_ = ;
chomp;
if (/y/i) {
exit;
}
else {
$int = 0;
}
}
}
页:
[1]