Your points are true, but they probably need both repeatition
and clarification. I provide two examples to clarify your points,
for the earlier ones were too simple.
Example 1. Here we show that the our var can also
overide the scope of the my var: the winner is the one
who declares last:
my $foo = 1;
our $foo = 2;
print $foo ; # prints 2
The result will be different when we reverse the order of declaration:
our $foo = 2;
my $foo = 1;
print $foo ; # prints 1
Example 2. Here we show that inter-package scopes are only valid
during 'no strict'; plus, access to the our variable is
possible only if the LEXICAL scope of the our variable
is still in force (that is, it reins through the whole file and is
not limited just to a block):
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
Having already acknowledged that there were no mistatements in your post,
these exaples were meant only as repeatition to the concepts
you have already advanced. Same concepts through different examples.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.