Restituisce il prossimo carattere dal file di input associato
con il FILEHANDLE, oppure il valore indefinito alla fine del
file o se c'è stato un errore (in quest'ultimo caso
viene impostato $!). Se FILEHANDLE viene omesso, legge da
STDIN. Questo non è particolarmente efficiente.
Comunque, non può essere usata da se stessa per
prelevare dei singoli caratteri senza aspettare che l'utente
abbia premuto invio. Per questo, provate piuttosto qualcosa
come:
if ($STILE_BSD) {
system "stty cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", '-icanon', 'eol', "\001";
}
$tasto = getc(STDIN);
if ($STILE_BSD) {
system "stty -cbreak </dev/tty >/dev/tty 2>&1";
}
else {
system "stty", 'icanon', 'eol', '^@'; # null ASCII
}
print "\n";
Determinare come deve essere impostato $STILE_BSD viene
lasciato come esercizio al lettore.
La funzione POSIX::getattr può fare questo in
maniera più portabile su sistemi che vogliono farsi
passare per essere conformi a POSIX. Date un'occhiata anche
al modulo Term::ReadKey, dal più vicino sito
CPAN; dettagli su CPAN possono essere trovati su
perlmodlib/CPAN.
mongers@perl.it è la lista ufficiale di Perl Mongers Italia per
porre quesiti di tipo tecnico, per rimanere aggiornato su meeting,
incontri, manifestazioni e novità su Perl.it. Iscriviti!