indietro

  • getc FILEHANDLE
  • getc

    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.