use Term::ReadKey; use Time::HiRes qw( usleep ); use strict; use warnings; ReadMode(4); my $old_ioctl = ioctl(STDIN,0,0) || -1; # Gets device info printf "System returned %d\n", $old_ioctl; $old_ioctl &= 0xff; ioctl(STDIN,1,$old_ioctl | 32); # Writes it back, setting bit 5 $| = 1; while(1){ my $char; while (!defined ($char = ReadKey(-1))){ usleep 1_100; } my $ord = ord($char); last if ($ord == 3); last if ($ord == 4); last if ($ord == 27); if ($ord == 0) { #my $c; #sysread(STDIN,$c,1); #print "C: $c\n"; } print $ord . "\n"; } $| = 0;