in reply to Referencing the locals

As an example of package-global versus lexical naming rules and also the scoping effects touched on elsewhere in this thread, consider:

Win8 Strawberry 5.8.9.5 (32) Wed 04/28/2021 19:35:55 C:\@Work\Perl\monks >perl -l use strict; use warnings; our $foo = 'package global'; { # begin scope my $foo = 'lexical'; print 'A: ', $foo; print 'B: ', $::foo; print 'C: ', $main::foo; } # end scope ^Z A: lexical B: package global C: package global
Now try the code without the { ... } scope. Is there any difference? If so, why? Is there any way to do without the our declaration in the
    our $foo = 'package global';
assignment statement? Is there any reason to avoid our? See also perldata.


Give a man a fish:  <%-{-{-{-<