Subject: | read and sysread should return undef on error, not negative |
IO::String read (and sysread) will sometimes return negative result
values based on arithmetic from reading beyond the end
of the string.
This should never be allowed.
Callers expect read and sysread to return undef in the event
of errors.