Flavio
perl -ple'$_=reverse' <<
#!/usr/bin/perl -w
#
# Example of getting a single, non-blocking character in Linux.
#
# 060306 liverpole
#
# Strict
use strict;
use warnings;
# Subroutine for capturing a key
sub one_key {
chomp(my $stty = `stty -g`); # Save 'cooked' mode tty
`stty -icrnl -icanon -echo min 0 time 0`; # Begin raw mode
sub { # Create a closure
if (!$_[0]) { # If argument is zero ...
system("stty $stty"); # restore 'cooked' mode
} else { # Otherwise get and return
`dd bs=1 count=1 <&0 2>/dev/null`; # a single keystroke
}
};
}
# Main program
my $p_one_key = one_key();
while (1) {
print ' ' x int(rand(20)), "*\n";
select(undef, undef, undef, 0.1);
last if $p_one_key->(1);
}
$p_one_key->(0);
perlmonks.org content © perlmonks.org and frodo72, jeanluca, liverpole, matze
prlmnks.org © 2006 edmund von der burg (eccles & toad)
v 0.03