my $pid = open(PIPE, '-|'); die "open(): $?" unless (defined $pid); if ($pid) { while () { print $_; } close(PIPE); } else { die "system(): $!" unless (system($cmd)); die "failed to execute: $!" if ($? == -1); die "signal: ". ($? & 127) if ($? & 127); die "exit code: ". ($? >> 8) if ($? >> 8); }