while (...) { } if (length($buf) > 0 && length($buf) < $recsize) { # last read was short }