[Melbourne-pm] Postfix conditionals and creating lexicals
Sam Watkins
sam at nipl.net
Thu Jul 12 17:04:38 PDT 2012
Robert Norris wrote:
> Seems a bit hit-and-miss (actually mostly miss):
>
> robn at pyro:~$ perl -Mwarnings -Mstrict -E 'my $x if 0'
> Deprecated use of my() in false conditional at -e line 1.
> robn at pyro:~$ perl -Mwarnings -Mstrict -E 'my $x if 1'
> robn at pyro:~$ perl -Mwarnings -Mstrict -E 'my $x if undef'
> robn at pyro:~$ foo=0 perl -Mwarnings -Mstrict -E 'my $x if $ENV{foo}'
> robn at pyro:~$ foo=1 perl -Mwarnings -Mstrict -E 'my $x if $ENV{foo}'
> robn at pyro:~$ perl -v
looks like targetting the specific idiom:
my $foo ... if 0
should warn about any
my $foo ... if ...
> So while we can argue about whether or not its a bug
unintended dis-recommended 'features' are bugs, categorically
> If I get around to it I'll open a bug report, even if its just asking
> for better warnings. I doubt I'll have time to work up a patch myself.
If can detect the pattern with 'use warnings', I guess not too hard
to make it a syntax error in the core. Maybe don't want to break
existing abuse of it, so leave it in use warnings / use strict.
Sam
More information about the Melbourne-pm
mailing list