$ perl -le'$|=1; for (;;) { print "poke"; sleep 1; }' > file & perl -MIO::Handle -e'sleep 3; print while $_ = STDIN->getline; print "exited instead of blocking\n"' < file ; fg [1] 29483 poke poke poke poke exited instead of blocking perl -le'$|=1; for (;;) { print "poke"; sleep 1; }' > file ^C $ cat file ; rm file poke poke poke poke poke poke