use Thread; sub a{ print "MAIN\n"; 1 }; $global::var = \&a; my $t1 = Thread->new(\&run, NULL); my $t2 = Thread->new(\&run, NULL); $t1->join; $t2->join; sub run { print "Thread\n"; &{$global::var}; }