
![]() | ![]() |
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 termios | ![]() | 15.10. Reading Passwords |

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