my %buf; while (1) { my @ready = $Select->can_read(1); foreach $fh ( @ready ) { while( sysread( $fh, $buf{$fh}, 1024, length($buf{$fh}) ) ) { if( $buf{$fh} =~ s#(.*$/)## ) { my $line= $1; dostuffwith( $line ); } } } }