IIRC, there was some discussion of adding an rshare function to do this, either in threads::shared or on CPAN, but I'm not seeing it. Without that, serialization is probably your best bet.
Comment on Re: sharing complex data structure between threads