use strict; use warnings; use forks; sub worker { print "Worker thread started.\n"; while(1){} } my $proc = threads->create(\&worker); print "Setting alarm.\n"; $SIG{ALRM} = sub { print "Alarm!\n" }; alarm 2; print "Joining.\n"; $proc->join(); #### Setting alarm. Joining. Worker thread started. Alarm!