if (my $pid = fork) { # Parent local $SIG{INT} = 'IGNORE'; local $SIG{QUIT} = 'IGNORE'; waitpid($pid, 0); } elsif (defined $pid) { # Child exec 'date'; die 'date not found' } else { die "Can't fork: $!"; }