% perl -MO=Deparse -Mstrict -le 'my $rv = 42 for (1); print $rv' BEGIN { $/ = "\n"; $\ = "\n"; } use strict 'refs'; foreach $_ (1) { my $rv = 42; } print $rv; -e syntax OK #### % perl -MO=Deparse -Mstrict -le 'foreach (1) { my $rv = 42 } ; print $rv' Global symbol "$rv" requires explicit package name at -e line 1. -e had compilation errors. BEGIN { $/ = "\n"; $\ = "\n"; } use strict 'refs'; foreach $_ (1) { my $rv = 42; } print ${'rv'};