JavaScript EditorFreeware JavaScript Editor     Perl Tutorials 

Main Page Previous Section Next Section

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

    Main Page Previous Section Next Section

    JavaScript EditorJavaScript Verifier     Perl Tutorials