use English qw( -no_match_vars );
my $leave_loop = 0;
sub hup_handler($)
{
my $sig = shift;
print "Got signal $sig in debugged program handler\n";
$leave_loop = 1;
}
$SIG{'HUP'} = \&hup_handler;
my $tempfile;
if (1 == scalar @ARGV) {
$tempfile = $ARGV[0]
} else {
$tempfile = "/tmp/signal.$$";
print "My process is $$\n";
}
open(my $fh, '>', $tempfile) or die $OS_ERROR;
print $fh "$$\n";
close $fh;
until ($leave_loop) {
sleep 1;
}
unlink $tempfile;