in reply to
Use of "my" after Perl v5.14
Consider this (notably, the difference between $localPrivateVarX and $localPersistentY):
#!/usr/bin/perl
use strict;
my $GlobalA = 1;
foreach my $notAGlobalB (qw /X Y Z/)
{
&displayDashedLine();
my $returnValueFromM = &subM($notAGlobalB);
print "Return: \$GlobalA = '$GlobalA', \$notAGlobalB = '$notAGlob
+alB', \$returnValueFromM = '$returnValueFromM'\n";
my $returnValueFromN = &subN($notAGlobalB);
print "Return: \$GlobalA = '$GlobalA', \$notAGlobalB = '$notAGlob
+alB', \$returnValueFromN = '$returnValueFromN'\n";
}
&displayDashedLine();
exit;
sub displayDashedLine
{
print "----------------------------------------\n";
}
sub subM
{
my ($parameterM1, @everythingElse) = @_;
my $localPrivateVarX;
if (!defined $localPrivateVarX)
{
$localPrivateVarX = 0;
}
$localPrivateVarX++;
print " SubM: \$GlobalA = '$GlobalA', \$parameterM1 = '$paramete
+rM1', \$localPrivateVarX = '$localPrivateVarX'\n";
return;
}
{
my $localPersistentY;
sub subN
{
my ($parameterN1, @everythingElse) = @_;
if (!defined $localPersistentY)
{
$localPersistentY = 0;
}
$localPersistentY++;
print " SubN: \$GlobalA = '$GlobalA', \$parameterN1 = '$para
+meterN1', \$localPersistentY = '$localPersistentY'\n";
return;
}
}
exit;
__END__