> -----Original Message-----
> From: John W. Krahn [mailto:[EMAIL PROTECTED]
> Sent: Thursday, 26 February 2004 6:56 AM
> To: [EMAIL PROTECTED]
> Subject: Re: get external process's output *and* return value
>
> Andrew Gaffney wrote:
> >
> > Is there a way to get an external process's output *and*
> return value? I have a program
> > that opens a pipe to 'make', process all the input, and
> then checks the return value when
> > the loop ends (pipe is broken/closed):
> >
> > open MAKE, "make |" or die "Can't open MAKE pipe";
> >
> > while(<MAKE>) {
> > # Process input
> > }
> > if($make_return_value) {
> > # An error occured with 'make'
> > }
> >
> > How do I get that return value?
>
> perldoc -f open
> [snip]
> Closing any piped filehandle causes the parent
> process to wait for the child to finish, and
> returns the status value in `$?'.
>
if( open(MAKE, "make |" ) ) {
while (<MAKE>) {
$rant;
}
$rc = close( MAKE );
} else {
print "Can't make..".$/;
$rc = -1;
}
print "Completed with rc=$rc".$/;
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>