C.DeRykus wrote:
Since you mention simplifying the code, do you actually
need IPC::Open3 ? In your sample code, you're only
reading process output.
If you don't need IPC::Open3 complexity, you could just
use magic open to read output :
sub shell_run
{
print "YYYY";
my $pid = open( my $fh, qq{ @_ | } ) or die "open: $!";
Probably better as:
my $pid = open my $fh, '-|', @_ or die "open: $!";
And you don't use $pid anywhere so why create it?
print for<$fh>;
Probably better as:
print while <$fh>;
close $fh or die "close: ", $? || $!;
Probably better as:
close $fh or die $! ? "Error closing pipe: $!"
: "Exit status $? from $_[0]";
print "ZZZZ";
}
trap { shell_run( 'perl', '-E', '"print \'TEXT IN\'"' ) };
is( $trap->stdout, "YYYYTEXT INZZZZ");
done_testing();
John
--
Any intelligent fool can make things bigger and
more complex... It takes a touch of genius -
and a lot of courage to move in the opposite
direction. -- Albert Einstein
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/