>perl -wMstrict -le "print F(); { my $y = X(); sub F { return $y } } { my $x = 'foo'; sub X { return $x } } " Use of uninitialized value in print at -e line 1. >perl -wMstrict -le "print F(); BEGIN { my $y = X(); sub F { return $y } } BEGIN { my $x = 'foo'; sub X { return $x } } " Undefined subroutine &main::X called at -e line 1. BEGIN failed--compilation aborted at -e line 1. >perl -wMstrict -le "print F(); BEGIN { my $x = 'foo'; sub X { return $x } } BEGIN { my $y = X(); sub F { return $y } } " foo >perl -wMstrict -le "print F(); INIT { my $y = X(); sub F { return $y } } INIT { my $x = 'foo'; sub X { return $x } } " Use of uninitialized value in print at -e line 1. >perl -wMstrict -le "print F(); INIT { my $x = 'foo'; sub X { return $x } } INIT { my $y = X(); sub F { return $y } } " foo