#!/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";
The results are:
Location 1, x = 15
Location 2, x = 22
Location 3, x = 15
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.
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. ;-)
s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
|