use threads; my $call = threads->create(\&methodinvoke); my @ReturnData = $call->join(); print('Thread returned ', join(', ', @ReturnData), "\n"); sub methodinvoke { use Alarm::Queued qw( :OVERLOAD :ALL ); setalarm(2, sub { print "bing" }); }