http://www.perlmonks.org?node_id=984161


in reply to Reading non-blockingly / "awk has to be better for something."

Yes there is, set your $fh non-blocking (IO::Handle's blocking method) and use IO::Handle's getline method on $fh, bearing in mind that getline will return undef (ending a while loop) when there isn't a line to read (<$fh> would also work non-blockingly, so getline is not strictly necessary)

As for the other issue, just split your returned line on "\n".