in reply to Re: Arrow Keys
in thread Arrow Keys
#!/usr/bin/perl -w
use strict;
use warnings;
use IO::Handle;
eval {
my $stdin = new IO::Handle;
$stdin->fdopen( fileno( STDIN ), "r" ) || die "Cannot open STDIN";
system "stty -icanon -isig -echo min 1 time 0";
while ( my $char = $stdin->getc() ) {
print "Up\n" if ( ord( $char ) == 65 ); # up
print "Down\n" if ( ord( $char ) == 66 ); # down
print "Right\n" if ( ord( $char ) == 67 ); # right arrow
print "Left\n" if ( ord( $char ) == 68 ); # left arrow
print "Return\n" if ( ord( $char ) == 10 ); # return key
print "Delete\n" if ( ord( $char ) == 127 ); # delete key
print "Esc\n" if ( ord( $char ) == 27 ); # escape key
print "Tab\n" if ( ord( $char ) == 9 ); # tab key
next if ( ord( $char ) == 32 ); # skip on space key
last if ( $char =~ /q/ ); # break on q
last if ( $char =~ /\003/ ); # break on Ctrl-C
last if ( $char =~ /\032/ ); # break on Ctrl-Z
print "ord: " . ord($char) . "\n";
}
system "stty icanon echo isig";
exit(0);
};
if ( $@ ) {
print "$@\n";
system "stty icanon echo isig";
exit(1);
}
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Arrow Keys
by idbill (Initiate) on May 27, 2009 at 18:42 UTC | |
by idbill (Initiate) on May 27, 2009 at 20:45 UTC | |
by idbill (Initiate) on May 27, 2009 at 19:59 UTC |