> 
> All, 
> 
> I want to capture the exit value of a system call.  How can I do this? 
> My code is:
> 
> system  ( " cat /tmp/foo" );
>         if ( $? == 0 ) {
> 
>                 blah blah blah
>         }
> 
> 
> I read the cookbook  and it says :
> 
> Both wait and waitpid return the process ID that they just reaped and
set $? to the wait status of the defunct process. This status is
actually two 
> 8-bit values in one 16-bit number. The high byte is the exit value of the 
> process. The low 7 bits represent the number of the signal that killed
the 
> process, with the 8th bit indicating whether a core dump occurred. Here's 
> one way to isolate those values:
> $exit_value  = $? >> 8;
> $signal_num  = $? & 127;
> $dumped_core = $? & 128;
> 

So what don't you understand? C<$?> will be set automatically, using the
above code you can isolate the exit value as $exit_value. You have
seemingly answered your own question.

The

if ($? == 0) 

Is actually not completely correct, it will only be correct on
(standard) success, better to use the 3 lines of code you provided, and
check the specific exit value.

http://danconia.org


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to