Since this effect depends on how a lot of different pieces work, you won't find it easily in the source code. But the last paragraph of the section of perlsyn on statement modifiers says (beginning in 5.8.1, anyway):
NOTE: The behaviour of a my statement modified with a statement
modifier conditional or loop construct (e.g. my $x if ...) is
undefined. The value of the my variable may be undef, any
previously assigned value, or possibly anything else. Don't rely on
it. Future versions of perl might do something different from the
version of perl you try it out on. Here be dragons.
| [reply] [Watch: Dir/Any] [d/l] [select] |