|Keep It Simple, Stupid|
why nobody wrote CPAN module with such wrappers?
My take on is that sysread is usually only used for non-blocking reads; and then usually in code dealing with multiple input streams.
In this usual case, you definitely don't want to block waiting for the rest of the expected input from any given stream, because it might be a long time coming; or indeed, never come.
Rather you want the read to return ASAP -- partial or not -- so that you can utilise any time that your wrapper would spend 'blocking' on one stream, checking other streams for input.
You say you are using sysread because you are using select; and presumably you are using select because you want to be doing other things whilst waiting for data to become available. What are those other things?
And what is that makes it important to be doing them, whilst waiting for data to start to arrive, not so important that you can hold off doing them indefinitely, if the pipe only gives you part of what you are expecting and never completes?
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.