sub worker { .... } ... my @workers = map threads->new( \&worker, ... ), 1 .. $WORKERS; #### sub worker { .... } sub proxy { my( $code, @args ) = @_; eval{ $code->( @args ) } or print $@; } ... my @workers = map threads->new( \&proxy, \&worker, ... ), 1 .. $WORKERS;