use strict; sub x { print "x() in main::\n"; } sub a { local *x = sub { print "x() in a()\n"; }; x(); } sub b { local *x = sub { print "x() in b()\n"; }; x(); } &a(); &b(); &x();