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


in reply to Re^4: Testing for a background process waiting for input (use a thread)
in thread Testing for a background process waiting for input

But I guess what you are saying is that under *nix, the standard CRT input routines don't provided line editing facilities, unless the program in question uses a readline(3) library or similar.

Essentially yes.   stdin is just a file handle like any other, which by itself is unfiltered / binary-clean. Any other behavior you may observe (typically with interactive sessions) is the result of other layers that sit in between stdin and the user/keyboard, most prominently a tty and (optionally) some readline library.

When stdin is connected to a regular pipe for non-interactive communication, those layers are not involved, unless things have explicitly been programmed that way (as with tools like Expect or similar) — this of course can be done, but usually isn't.