$sth->stuff();
#NOT return unless $timeleft;
#if i'm here, I do not need to return, I can go on
####
local $SIG{ALRM}=sub {
return; #IE, when ALRM strikes
# cut short execution of the routine and just return from
#there
};
alarm 10;#
$sth->stuff();
alarm 0;# if I'm here, I can safely continue
####
sub sth($$) {
$SIG{ALRM}=sub {
goto SUBEND; #IE, when ALRM strikes
# cut short execution of the routine and just return from
#there
};
#....
#....
alarm 10;#
$sth->stuff();
alarm 0;# if I'm here, I can safely continue
SUBEND:
return;
}