sub worker { my( ... ) = @_; eval { ... ... return 1 if ; ... 1; } or threads->create( \&worker, @_ ); }