use IO::Handle; pipe(READER, WRITER); WRITER->autoflush(1); if ($pid = fork) { close WRITER; my $buf = ""; while () { $buf .= $_; } chomp($buf); print "Parent Pid $$ just read this:\n$buf\n"; close READER; waitpid($pid, 0); } else { die "cannot fork: $!" unless defined $pid; close READER; # my $out = `ping 555-1212`; print WRITER "Child Pid $$ is sending this\n"; print PARENT_WRT $out; close WRITER; exit; }