in reply to RE: RE: onlyone
in thread onlyone

I was trying to make sure that any runtime errors get logged to the system logger, so I can diagnose problems after the event, hence the exit 1 on the following line. Is there a better way of trying to achive this?

I might drop all of the 'or's and write it like this:

my $pid = open(FROMKID, "-|"); # There are now two processes running, one with # $pid set to the PID of the child, and the other # with $pid set to 0 (or undefined upon an error). unless ($pid) { if (!defined($pid)) { system_logger("Unable to fork: $!"); die "fork: $!"; # or just exit as you were } # note that in this test, $pid is undefined, # which means we're the child thread, so no # matter what happens, we must exec or exit/die unless (exec(...)) { system_logger("Cannot exec ...: $!"); die "exec ...: $!"; # or just exit } }
is (the use of 'TERM' in kill) a product of the English module, or built in?

It's built-in.

Hope this helps.