|
|
| We don't bite newbies here... much | |
| PerlMonks |
Re^4: Conditional initialization of lexical (my) variablesby LanX (Saint) |
| on May 10, 2023 at 20:58 UTC ( [id://11152089]=note: print w/replies, xml ) | Need Help?? |
|
not the same thing This my $x if 0 is definitely a bug, because constant folding shouldn't allow a lexical to be declared. But the OP has a condition which is only checked at run-time, while the declaration happens at compile-time. This means the new variable will not be overwritten with an init-value if the condition is false. The deeper issue is that postfix-conditions have no own scope, the problem is non-existent for if ($bool) {my $x = ... } Not sure if this qualifies as a bug or a weird feature. But a warning should happen in any case if a declaration happens before a postfix condition, because of the broken symmetry to prefix conditions.
Cheers Rolf
In Section
Seekers of Perl Wisdom
|
|
||||||||||||||||||||||||||||||