use IO::Handle; pipe(MAIN_RD, FORK_WR); pipe(FORK_RD, MAIN_WR); MAIN_WR->autoflush(1); FORK_WR->autoflush(1); $pid = fork(); if($pid == 0) { close(MAIN_RD, MAIN_WR, STDIN, STDOUT, STDERR); #################################### open(STDIN, "<&FORK_RD"); open(STDOUT, ">&FORK_WR"); open(STDERR, ">&FORK_WR"); print "TEST.\n"; #################################### } close(FORK_RD, FORK_WR); #################################### $out = ; chomp($out); print "$out"; #Need to print "Test." from fork here ####################################