From: [EMAIL PROTECTED]
> I have the statement and I would like if someone could verify the
> logic here. Precedence is left to right and =~ is higher than & and ||
> while & is higher than ||.
> 
> if ( (($_ =~ /9840S/) && ($_ =~ /ebexpire, ebexpire/)) && (($_ =~ $dm)
> || ($_ =~ $dmm)) ) {
> 
> This statement is saying  "if variable $_ matches 9840S and $_ matches
> ebexpire, ebexpire first both have to be true then return 1 if $dm is
> matched or $dmm is matched.
> 
> is my above English statement correct?

With this many braces the precedence of the operators doesn't matter.

I would read it as "if it contains "9840S" and "ebexpire, ebexpire" 
and matches either $dm or $mm do ...", but I think that if I read 
your sentence correctly, yes you do understand it currectly.

And I would probably write it like this:

if ( /9840S/ and /ebexpire, ebexpire/ and ($_ =~ $dm or $_ =~ $dmm) ) 
{

Looks a wee bit more readable to me :-)

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


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to