in reply to Re^2: getting data to a signal handler
in thread getting data to a signal handler

You're forming a closure on $thing, as well as returning a reference to it. voodoo() indeed!

One nice way to pretend you don't have a global variable when you do (I've talked about this one before):

{ my $foo; sub foo () :lvalue { $foo } } foo = 'bar'; print foo, $/;
No sigil, that makes some people happy ;-)

After Compline,
Zaxo