Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
what is the purpose of this declaration?
IF you had multiple packages in one file;
then this would be useful for a file-global variable (the lexical scope)
but what other function does it fulfill?
what does it mean that it does not CREATE a local variable?
is the namespace reserved in the symbol table, but no memory has been allocated for it?
isn't that what my does?
also it's wierd that you can declare a variable OUR as well as MY
and sure enough, ourVAR gets the new value.
so what am i missing? :-)
IF you had multiple packages in one file;
then this would be useful for a file-global variable (the lexical scope)
but what other function does it fulfill?
what does it mean that it does not CREATE a local variable?
is the namespace reserved in the symbol table, but no memory has been allocated for it?
isn't that what my does?
my $var; isn't both a symbol table entry created and memory allocated? our $var; only a symbol table entry?
also it's wierd that you can declare a variable OUR as well as MY
package packA; use strict; our $ourVAR; $ourVAR = "123 ABC"; print " packA ourVAR = $ourVAR \n"; my $ourVAR = "456 RST"; print " packAA ourVAR = $ourVAR \n";
and sure enough, ourVAR gets the new value.
so what am i missing? :-)
Back to
Seekers of Perl Wisdom