use threads; use threads::shared; my $foo : shared; print "outside thread: foo = ".(\$foo)."\n"; threads->new( sub { print "inside thread: foo = ".(\$foo)."\n" } )->join; __END__ outside thread: foo = SCALAR(0x107cc0) inside thread: foo = SCALAR(0x232800)