getc
if ($BSD_STYLE) {
system "stty cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", '-icanon', 'eol', "\001";
}
$key = getc(STDIN);
if ($BSD_STYLE) {
system "stty -cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", 'icanon', 'eol', '^@'; # ASCII null
}
print "\n";
Determination of whether $BSD_STYLE should be set is left as
an exercise to the reader.
The POSIX::getattr() function can do this more portably on systems alleging
POSIX compliance. See also the
Term::ReadKey module from your nearest
CPAN site; details on
CPAN can be found on
CPAN.