http://www.perlmonks.org?node_id=282330


in reply to Time-limited input on STDIN

Something like:

use strict; use warnings; use Term::ReadKey; sub timed_input { my $end_time = time + shift; my $string; do { my $key = ReadKey(1); $string .= $key if defined $key; } while (time < $end_time); return $string }; my @words = split ' ', timed_input(10);

should do the job.

Replies are listed 'Best First'.
Re^2: Time-limited input on STDIN
by Ackolight (Initiate) on Apr 07, 2009 at 23:21 UTC
    Hi Adrian,

    Just wanted to say thanks. Although it was not my query originally, I found your method worked in the situation I needed, whereas the other methods utilising SIG don't seem to work under ActivePerl on Windows.

    Just one tweak: a line before the return to prevent it complaining about uninitialised values:

    $string= defined $string ? $string : "No input" ;

    Thanks again. :)