On Thu, 10 Jul 2008, David Kaufman wrote:
>
>   my $foo = 'bar' if $baz;
>
> I wish it would still DWIM, and by that I mean the compiler should detect
> my declaration + assignment + conditional and rewrite it for me as what I
> meant which was simply:
>
>   my $foo = $baz ? 'bar' : undef;
>

I disagree.  In the first, you are telling perl that you
want to create a symbol if a certain condition is true.
Maybe under some conditions you don't want to create that
symbol.  Consider the same logic applied to hash assignment:

  my %foo;
  $foo{bar} = 'baz' if $biz;
  frob() if exists $foo{bar};

You would expect that $foo{bar} would not exist if $biz was
false.  But under your recommendation, it would exist.  This
is not the way it should behave.

Mark

Reply via email to