Shawn, I ran the exmaple that you provided, and it expected as I had the predicted based on the knowledge provided by Wiggins and Bob. Thanks to all of you.
Vishal Quoting Shawn Corey <[EMAIL PROTECTED]>: > [EMAIL PROTECTED] wrote: > > I see. Thanks Shawn. Since we are at it, would you mind explaining a little > bit > > about the significance of "our" keyword. I have never understood it > properly. > > Most books that I referred to say that it's a "lexically-scoped global > > variable". What does that mean? I understand global variables to be the > ones > > which are accessible to all perl program units (modules, packages or > scripts). > > But then, what is so lexically-scoped about it? What do the perl compiler > and > > opcode interpreter do when encounter a variable name prefixed by "our"? > > Below are three files, main, foo.pm, and bar.pm. These show the way 'my' > and 'our' behave. > > A 'my' global variable is scoped only to the file it is in. It hides any > 'our' variable (of the same name); you can only access the 'my' > variable. 'our' variables are global globals; they are the same and > accessible across files. > > Below, you will note that the sub super_bar uses 'our' (in a block) to > override the 'my' definition of $Self to access the 'our' one. With > practice, you too can create code that is a nightmare for your maintainers. > > > #!/usr/bin/perl > > use strict; > use warnings; > > our $Self = __FILE__; > > use foo; > use bar; > > print "main: $Self\n"; > foo(); > bar(); > super_bar(); > > __END__ > > > # foo.pm > > our $Self = __FILE__; > print "foo: $Self\n"; > > sub foo { > print "foo: $Self\n"; > } > > 1; > __END__ > > > # bar.pm > > my $Self = __FILE__; > print "bar: $Self\n"; > > sub bar { > print "bar: $Self\n"; > } > > sub super_bar { > our $Self; > print "super_bar: $Self\n"; > } > > 1; > __END__ > > > > -- > > Just my 0.00000002 million dollars worth, > --- Shawn > > "Probability is now one. Any problems that are left are your own." > SS Heart of Gold, _The Hitchhiker's Guide to the Galaxy_ > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > <http://learn.perl.org/> <http://learn.perl.org/first-response> > > ---------------------------------------- This mail sent through www.mywaterloo.ca -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>