my $bufflen = 4 * 1024; #or w/e do { $result = read ( IN, $buffer, $bufflen-length($buffer), length($buffer) ); } while ( $result && ( length($buffer) < $bufflen ) );