On Sat, Jun 01, 2013 at 07:03:45PM +0200, Marcel Grünauer wrote: > On H.25/06/01, at 18:43, Andrew Beverley <a...@andybev.com> wrote: > > > my $result = "FOO" if $in =~ /foo/; > > Conditional variable declaration is confusing. > > Try: > > my $result; > $result = "FOO" if $in =~ /foo/; > > See > https://metacpan.org/module/Perl::Critic::Policy::Variables::ProhibitConditionalDeclarations
And the official line from perlsyn: NOTE: The behaviour of a "my", "state", or "our" modified with a statement modifier conditional or loop construct (for example, "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. -- Paul Johnson - p...@pjcj.net http://www.pjcj.net