-
Sysread may return a parital result (that is, read less characters then requested) any time. Indeed, it must return exactly one packet with datagram sockets like udp.
Read cannot do that except at the end of file.
-
Sysread bypasses buffering, and also perlio layers to some extent.
-
Update: sysread cannot be tied.
-
Possibly more I don't know about.
As a general rule, use read unless you have a reason to use sysread.