qwurx [shmem] ~> perl -e 'open my $fh,"|-","ssh localhost"; while(){print $fh $_}' Pseudo-terminal will not be allocated because stdin is not a terminal. The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. You have new mail. touch blorflydick <--- input at terminal touch gobbledygook <--- input at terminal ^D <--- input at terminal (Ctrl-D or eof) qwurx [shmem] ~> ls -lrt | tail -2 <--- after perl terminated -rw-r--r-- 1 shmem shmem 0 Mar 15 18:30 blorflydick -rw-r--r-- 1 shmem shmem 0 Mar 15 18:30 gobbledygook #### my @fh; for my $ip (@ips) { open my $fh,"|-","ssh $ip" or die "Can't ssh to $ip: $!\n"; push @fh, $fh; } while () { for my $fh (@fh) { print $fh $_; } } #### open my $fh,"|-","ssh $ip >/dev/null 2>&1" or die "Can't ssh to $ip: $!\n";