Re: chaining defines

[email protected] ("Jenda Krynicky")
Newsgroups perl.beginners
Message-ID <[email protected]>
From: Robert Hicks <[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

===== [email protected] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
	-- Terry Pratchett in Sourcery
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.