use warnings; use strict; BEGIN { print "Before: $_\n" for grep /f/, keys %{main::}; } sub foo { print "I am defined\n"; } BEGIN { print "After: $_\n" for grep /f/, keys %{main::}; }