my $a = 123; { my $a; print $a; ## produces "Use of uninitialized value $a in print ... " because the above new $a is entirely new; thus uninitialised. } print $a;; ## prints: 123 #### our $a = 123; { our $a; ## produces ""our" variable $a redeclared at ..." references the same variable as the first our $a print $a; ## prints 123 ## New scope, same variable, existing value. } print $a;; ## prints 123