Thanks for the link, Florin.  I notice that it's a Ukranian site where
Coprights aren't really honored. ;-) I did have a copy lying around that
I hadn't yet cracked open, but just found this gem[1]:

  The system function (but not backticks) ignores SIGINT and SIGQUIT
  while child processes are running. That way those signals will kill
  only the child process. If you want your main program to die as well,
  check the return value of system, or the value of the $? variable.

  if (($signo = system(@arglist)) &= 127) { 
      die "program killed by signal $signo\n";
  }

  To get the effect of a system that ignores SIGINT, install your own
  signal handler and then manually fork and exec:

  if ($pid = fork) {
      # parent catches INT and berates user
      local $SIG{INT} = sub { print "Tsk tsk, no process interruptus\n" };
      waitpid($pid, 0);
  } else {
      die "cannot fork: $!" unless defined $pid;
      # child ignores INT and does its thing
      $SIG{INT} = "IGNORE";
      exec("summarize", "/etc/logfiles")             or die "Can't exec: $!\n";
  }

1. Christiansen, T. and Torkington, N., ``Perl Cookbook'',
   1999. O'Reilly & Associates, Inc. http://safari.oreilly.com/1565922433