use IO::Select ; my $timeout = 5 ; my $stdin = \*STDIN ; my $ios = IO::Select->new( $stdin ) ; for(;;) { my $sel = $ios->can_read($timeout) ; my $buffer ; print "Reading ($timeout\s)...\n" ; 1 while( read( \*STDIN , $buffer, 1 , length($buffer) ) ) ; print "Read:<$buffer>" ; }