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: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/