# topen.pl use strict; use warnings; open(my $fh, '<', "zz.tmp") or die "open zz.tmp: $!"; my $fdnew = fileno($fh); print "fdnew=$fdnew\n"; # topensys.pl use strict; use warnings; use Fcntl; $|=1; # $^F = 3; # uncomment this line to inherit $fh_g my $tmpfile_g = 'tmpglob.tmp'; open(my $fh_g, '<', $tmpfile_g) or die "error: open '$tmpfile_g': $!"; if (0) { # Fiddle with close-on-exec, works on Unix, not Windows. my $val = fcntl($fh_g, F_GETFD, 0) or die "error: fcntl: $!"; # $val |= FD_CLOEXEC; # turn on $val &= ~FD_CLOEXEC; # turn off fcntl($fh_g, F_SETFD, $val) or die "error: fcntl: $!"; } my $rc = system("$^X topen.pl"); sleep(30); print "rc=$rc\n";