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"; #### 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";