by sigzero@[EMAIL PROTECTED]
(Robert Hicks)
May 6, 2008 at 12:27 PM
Jenda Krynicky wrote:
> From: Robert Hicks <sigzero@[EMAIL PROTECTED]
>
>> Is there anything wrong with:
>>
>> if ( defined $one && defined $two && $one eq $two ) {
>> #### do something
>> }
>
> As far as I can tell not. I was afraid the operator precedence might
> play tricks with it, but looks like it doesn't:
>
> V:\>perl -MO=Deparse -e "defined $one && defined $two && $one eq
> $two"
> $one eq $two if defined $one and defined $two;
> -e syntax OK
>
> V:\>perl -MO=Deparse -e "if(defined $one && defined $two && $one eq
> $two) {print 'aha'}"
> if (defined $one and defined $two and $one eq $two) {
> print 'aha';
> }
> -e syntax OK
>
> I would write it as
>
> if ( defined($one) && defined($two) && $one eq $two ) {
>
> or even more likely as
>
> if ( defined($one) and defined($two) and $one eq $two ) {
>
> but it seems your version is just fine.
>
> Jenda
>
Thanks very much for the corroboration.
Robert