Current Perl documentation can be found at
Here is our local, out-dated (pre-5.6) version:
Because some stdio's set error and eof flags that need clearing. The
POSIX module defines
clearerr() that you can use. That is the technically correct way to do it. Here are some less reliable workarounds:
Try keeping around the seekpointer and go there, like this:
$where = tell(LOG);
seek(LOG, $where, 0);
If that doesn't work, try seeking to a different part of the file and then
If that doesn't work, try seeking to a different part of the file, reading
something, and then seeking back.
If that doesn't work, give up on your stdio package and use sysread.