in reply to Input and output piping?

Take a look at IPC::Open2 (or IPC::Open3). As the man page says:
It's what you think should work when you try $pid = open(HANDLE, "|cmd args|");