{ $x = 1; { $x = 2; } } #### { my $x = 1; { my $x = 2; } } #### { $x = 1; { my $x = 2; } } #### { my $x = 1; { my $x = 2; } } #### { my $x = 1; { $x = 2; } } #### { my $x = 1; { $x = 2; } } #### { my $x = 1; { my $x = 2; } } #### { my $x = 1; { my $x = 2; } } #### sub foo { if (1) { $x = 2; } print $x; } #### sub foo { if (1) { my $x = 2; } print $x; # undeclared } #### sub add { $x = 0; for (1..9) { $x = $x + $_; } print $x; } #### sub add { my $x = 0; for (1..9) { my $x = $x + $_; } print $x; # prints 0 } #### use automine # our $var; ... sub foo { $var = shift; # not 'my $var' if explicit 'our $var' exists ... }