getc
Gražina kitą simbolį iš įvesties failo, prijungto prie FILEHANDLE arba neapibrėžtą reikšmę failo gale, arba jei buvo klaida (pastaruoju atveju nustatytas $!
). Jei FILEHANDLE
praleistas, nuskaitymas vyksta iš STDIN. Tai nėra ypatingai efektyvu. Šiaip ar taip, negalima nuskaityti vieno simbolio, nepalaukus kol vartotojas paspaus enter. Tokiam atvejui reiktų mėginti kažką tokio:
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";
Sprendimas ar $BSD_STYLE turėtų būti nustatytas tebūnie pratimas skaitančiajam.
POSIX::getattr
funkcija gali tai įvykdyti portabiliau sistemose, palaikančiose POSIX. Taip pat žr. Term::ReadKey
modulį iš artimiausio CPAN saito; detalesnė informacija apie CPAN gali būti randama "CPAN"
perlmodlib'e.