use POSIX qw(:signal_h); # do something # my $sigSet = POSIX::SigSet->new; my $blockSet = POSIX::SigSet->new(SIGTERM, SIGHUP); die "Error restoring signal set: $!" unless sigprocmask(SIG_BLOCK, $blockSet, $sigSet) # do critical (uninterruptable) stuff die "Error restoring original signal set: $!" unless sigprocmask(SIG_SETMASK, $sigSet) # # do other stuff here