use strict; use warnings; use Scalar::Util 'openhandle'; my $fh_ref = \*FH; my $pid1 = fork(); if ($pid1) # parent { sleep 1; print "parent : "; print openhandle($fh_ref) ? "yes" : "no"; print "\n"; print FH "line 3\n"; print FH "line 2\n"; close FH; exit; } # Child from here on. open_fh($fh_ref); print "child : "; print openhandle($fh_ref) ? "yes" : "no"; print "\n"; #exit; sub open_fh { my $_fh_ref = shift; open($_fh_ref, "|sort") or die $!; }