sub _system { my $prog = shift; my $rv = system( { $prog } $prog => @_ ); if ($rv == -1) { die("Can't launch $prog: $!\n"); } elsif (my $s = $rv & 127) { die("$prog died from signal $s\n"); } elsif (my $e = $rv >> 8) { die("$prog exited with code $e\n"); } }