{ my $q; BEGIN { # runs at compile time when the outer block hasn't been entered $q = 42; } print $q; # prints 42 } #### for (0..1) { my $q; BEGIN { # runs at compile time when the outer block hasn't been entered $q = 42; } print $q || "undef"; # prints 42undef } #### our $q = 54; # never actually used for (0..1) { my $q if 0; BEGIN { # runs at compile time when the outer block hasn't been entered $q = 42; } print $q || "undef"; # prints 4242 }