$sel = IO::Select->new(); $sel->add(\*STDIN); while(1) { print "waiting to read:\n"; my @handles = $sel->can_read(); print "can read\n"; foreach $h (@handles) { if($h == \*STDIN) { my $line = ; my $finish = do_something_with_line($line); } } if($finish) {last;} }