考虑这个例子:
#!/usr/bin/env perl
use Argv;
use sigtrap 'handler' => \&stop, 'INT';
for (0 .. 10) {
Argv->new('sleep', '0.5')->system;
}
sub stop {
print "\nStopping this damned program!\n" and exit -1;
}
我想在我的程序中随时捕捉 Ctrl + c 。即使我试图捕获SIGINT
,这也不起作用。
怎么了?
答案 0 :(得分:1)
我发现了一个类似的问题here,解决方案可以这样编写:
#!/usr/bin/env perl
use Argv;
use POSIX qw(SIGINT);
$SIG{INT} = \&stop;
for (0 .. 10) {
Argv->new('sleep', '0.5')->qx;
}
sub stop {
print "\nStopping this damned program!\n" and exit -1;
}