You might be interested in What is the difference between `read` and `sysread`?
In reply to Re^3: IO::Select woes by ikegami in thread IO::Select woes by Anonymous Monk