my $foo = 1; our $foo = 2; print $foo ; # prints 2 #### our $foo = 2; my $foo = 1; print $foo ; # prints 1 #### no warnings; package Foo; use Data::Dumper; { our $foo = 'bar'; } print 'Foo: '. $foo, "\n"; # prints 'bar' package Bar; no strict; print 'Bar: '. $foo, "\n"; # $foo is undefined