use strict; use warnings; print "about to open cat in a sub-process\n"; open(CAT, '|-', "cat") or die "open cat failed: $!"; print CAT "This was written to cat without output redirected\n"; close(CAT); open(CAT, '|-', "cat > /dev/null") or die "open cat failed: $!"; print CAT "This was written to cat with output redirected\n"; close(CAT); print "all done\n";