Perl Cd Bookshelf [Electronic resources]

نسخه متنی -صفحه : 875/ 608
نمايش فراداده

15.9. Checking for Waiting Input

15.9.1. Problem

You want to know whether keyboard input is waiting without actually reading it.

15.9.2. Solution

Use the CPAN module Term::ReadKey, and try to read a key in non-blocking mode by passing it an argument of -1:

use Term::ReadKey; ReadMode ('cbreak'); if (defined ($char = ReadKey(-1)) ) { # input was waiting and it was $char } else { # no input was waiting } ReadMode ('normal'); # restore normal tty settings

15.9.3. Discussion

The -1 parameter to ReadKey indicates a non-blocking read of a character. If no character is available, ReadKey returns undef.

15.9.4. See Also

The documentation for the Term::ReadKey module from CPAN; Recipe 15.6


15.8. Using POSIX termios15.10. Reading Passwords


Copyright © 2003 O'Reilly & Associates. All rights reserved.