in reply to Reading in from CLI (UNIX)

Beyond recommending everybody do as chip says, I'd like to correct some UN*X terminology. Your "channels" are what UN*X calls "file descriptors". It is not correct that Perl's STDIN is UN*X's file descriptor 1. STDIN is file descriptor 0:
<diana 248 [10:08] /tmp >perl -le 'print fileno STDIN; print fileno ST +DOUT; print fileno STDERR' 0 1 2
Many systems will behave as you expect if you write file descriptor 0 or read file descriptor 1. At least if they're connected to your terminal, /dev/tty. As soon as you redirect, you'll get something else. So "don't do that".