$remote->recv($length, 10); while ($length) { $remote->recv(my $message_block, $length > 4096 ? 4096 : $length);   $message .= $message_block;   $length -= length $message_block; }