A
Awkish
Hello,
I'm a bit puzzled by the following behavior:
VARIANT 1:
===========
perl -e '
my $var=0;
sub fonc{
$var++;
printf "sub: $var\n";
}
$var=5;
my @arr=( 10,20,30 );
for $var (@arr){
printf "main: $var\n";
fonc();}
'
This gives:
main: 10
sub: 6
main: 20
sub: 7
main: 30
sub: 8
VARIANT 2:
===========
perl -e '
sub fonc{
$var++;
printf "$var\n";
}
$var=5;
my @arr=( 10,20,30 );
for $var (@arr){
printf "main: $var\n";
fonc();
}
'
This gives:
main: 10
11
main: 20
21
main: 30
31
Strange! What is the effect of "my"?
I'm a bit puzzled by the following behavior:
VARIANT 1:
===========
perl -e '
my $var=0;
sub fonc{
$var++;
printf "sub: $var\n";
}
$var=5;
my @arr=( 10,20,30 );
for $var (@arr){
printf "main: $var\n";
fonc();}
'
This gives:
main: 10
sub: 6
main: 20
sub: 7
main: 30
sub: 8
VARIANT 2:
===========
perl -e '
sub fonc{
$var++;
printf "$var\n";
}
$var=5;
my @arr=( 10,20,30 );
for $var (@arr){
printf "main: $var\n";
fonc();
}
'
This gives:
main: 10
11
main: 20
21
main: 30
31
Strange! What is the effect of "my"?