With Deferred (or Safe) Signals enabled--the default since 5.8.something--there are (many) somethings that cannot be interrupted by SIGALRM.
Reading your later description of do_program(), it seems like that it is doing many, maybe even most, of those somethings.
You may find the use of Perl::Unsafe::Signals worth testing.
In reply to Re: Perl Alarm Not Working
by BrowserUk
in thread Perl Alarm Not Working
by aceofspace
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |