I found Term::ReadKey can capture ctrl + c on windows
use strict;
use warnings;
use Term::ReadKey;
ReadMode "raw"; #raw can capture ctrl + c
while(1){
print "prompt>\n";
#sleep 30 seconds
my $char = ReadKey 30;
next if (! defined $char);
if (ord $char == 3 ){
print "control + c\n";
last;
}
#check database
#process image
}
ReadMode "restore";
If I pressed ctrl + c while processing something, it will abort. So if I could write like this... (there seems no such function like "BindEvent").
ReadMode "raw"; #raw can capture ctrl + c
BindEvent "keypress", sub {
my ($keycode) = @_;
if ($keycode == 3){
ReadMode "restore";
#disconnect database
exit;
}
};
#main loop
while(1){
ReadKey 30;
#check database
#process images
}
ReadMode "restore";
regards.
updated:
I read about Glib main loop,
Re: Perl Hotkey/Shortcut. I'll try it after I sleep several hours;