my $size = shift || croak 'read($buf,$size,[$timeout])';