Interestingly, even though I can't (perl won't let me) threads::shared::share($cfg::listen_socket), (because it's too complex an object), declaring it in the ctrl thread then assigning/using it in the listen thr still allows the shutdown() cmd from the ctrl thr to affect the listen thr, which is what I wanted. :-)