Both sysread and <FH> will return immediately if some data (for <FH>, a whole line) were collected from the pipe. There is no need to turn on autoflush ($|) for the FH filehandle. If you are not getting the data it is because whois is probably not sending it. Probably it is using stdio, and since its output is a pipe, it is buffered. If that's the case, then there's not much you can do about it. None of the versions of whois that I have produce this status message so I cannot test whether this is so, but you can verify whether yours is outputting any data with truss or strace:
truss -t write whois x.x.x.x 2>&1 | cat
In reply to Re: Non-buffered read from program
by Celada
in thread Non-buffered read from program
by arc_of_descent
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |