Recipe 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



Perl Cookbook
Perl Cookbook, Second Edition
ISBN: 0596003137
EAN: 2147483647
Year: 2003
Pages: 501

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net