getc - get the next character from the filehandle
getc FILEHANDLE
getc
Returns the next character from the input file attached to FILEHANDLE, or the undefined value at end of file, or if there was an error. If FILEHANDLE is omitted, reads from STDIN. This is not particularly efficient. It cannot be used to get unbuffered single-characters, however. For that, try something more like:
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 purporting
POSIX compliance. See also the Term::ReadKey
module from your nearest
CPAN site; details on
CPAN can be found on
CPAN.
If rather than formatting bugs, you encounter substantive content errors in these documents, such as mistakes in the explanations or code, please use the perlbug utility included with the Perl distribution.