in reply to Re^3: Conditional initialization of lexical (my) variables
in thread Conditional initialization of lexical (my) variables
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
(addicted to the 𐍀𐌴𐍂𐌻 Programming Language :)
Wikisyntax for the Monastery
|
---|