my $pid = open3("<&STDIN", ">&OUTPUT", ">&ERRLOG", $cmd) or die "$!";
####
#!/usr/local/bin/perl
# Script to test IPC::Open3
# Runs, displays $pid to STDOUT, but opened
# files are empty.
use strict;
use warnings;
if( @ARGV ) {
print STDOUT "StdOut!\n";
print STDERR "StdErr!\n";
exit( 0 );
}
#use diagnostics;
use IPC::Open3;
$|++;
my @cmd = ($^X,$0,"Test");
open(ERRLOG, ">error.log") or die "Can't open error log! $!";
open(OUTPUT, ">output.log") or die "Can't open output log! $!";
my $pid = open3("<&STDIN", ">&OUTPUT", ">&ERRLOG", @cmd) or die "$!";
print "PID was $pid\n";
close(ERRLOG) or die "Can't close filehandle! $!";
close(OUTPUT) or die "Can't close filehandle! $!";
defined( my $x= ) or warn "Can't read STDIN: $!\n";
##
##
PID was 416
readline() on closed filehandle main::STDIN at open3.pl line 32.
Can't read STDIN: Bad file descriptor
##
##
open( IN, "<&STDIN" ) or die "...: $!\n";