Well as I said, I couldn't test while posting from mobile.
I though that post-fix-for doesn't have an own scope, analogous to post-fix-if
So I ran a test and it turned out that post-fix-for is neither fish nor flesh, it's pretending and denying having an own scope ... ugh ...oO
please notice how the redeclaration of $x is reported but the value gets lost.
Looks like a bug...
use strict;
use warnings;
my $y=666 if 1;
warn $y;
my $x=1;
my $x=42 for 1;
warn $x;
"my" variable $x masks earlier declaration in same scope at c:/tmp/pm/
+scope_postfix_for.pl line 12.
666 at c:/tmp/pm/scope_postfix_for.pl line 7.
Use of uninitialized value $x in warn at c:/tmp/pm/scope_postfix_for.p
+l line 16.
Warning: something's wrong at c:/tmp/pm/scope_postfix_for.pl line 16.
|