Proc::WaitStat3pm
Interpret and act on wait() status values
Usage
$description = waitstat $?;exit waitstat_reuse $?;waitstat_die $?, 'program-name';close_die COMMAND, 'program-name';
Overview
This module contains functions for interpreting and acting on wait status values.
Nothing is exported by default.
waitstatwait-status-
Returns a string representation of
wait()status value wait-status. Values returned are like"0"and"64"and"killed (SIGHUP)".This function is prototyped to take a single scalar argument.
waitstat_reusewait-status-
Turn wait-status into a value which can be passed to
exit, converted in the same manner the shell uses. If wait-status indicates a normal exit, return the exit value. If wait-status instead indicates death by signal, return 128 plus the signal number.This function is prototyped to take a single scalar argument.
waitstat_diewait-status program-name-
die()if wait-status is non-zero (mentioning program-name as the source of the error).This function is prototyped to take two scalar arguments.
close_diefilehandle name-
Close filehandle, if that fails
die()with an appropriate message which refers to name. This handles failed closings of both programs and files properly.This function is prototyped to take a filehandle (actually, a glob ref) and a scalar.
Examples
close SENDMAIL;exit if $? == 0;log "sendmail failure: ", waitstat $?;exit EX_TEMPFAIL;$pid == waitpid $pid, 0 or croak "Failed to reap $pid: $!";exit waitstat_reuse $?;$output = `some-program -with args`;waitstat_die $?, 'some-program';print "Output from some-process:\n", $output;open PROGRAM, '| post-processor' or die "Can't fork: $!";while (<IN>) {print PROGRAM pre_process $_or die "Error writing to post-processor: $!";}# This handles both flush failures at close time and a non-zero exit# from the subprocess.close_die PROGRAM, 'post-processor';
Releases
13 releases since Debian 2.2 (Potato); the text changed 5 times.