use IPC::Open2; open2 ( REA, WRI, 'tr a-z A-Z' ) or die $!; for (){ print {\*WRI} [(my $cmd, my @rest) = split]->[0]; } close WRI; print ; __END__ an apple a day boat for bloat