in reply to Re: (jeffa) Re: Whether to use local()
in thread Whether to use local()
Ahhhh, i am starting to see now:
- my declares a local variable which is not found in a package's symbol table
- a local var does show up in the symbol table, but if you use strict, then you have to fully qualify the variable name (that is, prefix the package name)
- our handles the strict vs. non-fully qualified local vars
Which (without use strict) produces this ouput :#!/usr/bin/perl #use strict; use Devel::Symdump; my $obj = Devel::Symdump->new('Foo'); print map {"$_\n"} $obj->scalars; package Foo; local $Foo::qualified; local $unqualified; our $our; my $my;
Foo::qualified Foo::our Foo::unqualifiedIf strict is turned on, then $unqualified will cause a compliation error. I think i get it now! :)
Thank you tachyon, perrin, and also rob_au for pointing out What is it adding to my symbol table?.
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
In Section
Seekers of Perl Wisdom