in reply to what is the scope of my $x=$x
Why don't you just try it and see?! ...
The results are:#!/usr/bin/perl -w + # Strict use strict; use warnings; + + my $x = 15; # This is the outer $x + { my $x = $x; # This is the inner $x print "Location 1, x = $x\n"; $x += 7; print "Location 2, x = $x\n"; } + print "Location 3, x = $x\n";
Clearly, the line my $x = $x; is creating a lexical variable $x (the first one) which starts out with the value of the "outer" $x (the second one). It's really just like saying my $b = $a, where $a is the "outer" value, and $b is the "inner" one.Location 1, x = 15 Location 2, x = 22 Location 3, x = 15
Of course, whether or not it's a good programming practice to use the same name for multiple variables is an exercise left to the reader. ;-)
|
|---|