in reply to use of pipes and 'or'

Rather than worry about precedence , I always use parentheses whenever there is the slightest doubt. This makes the meaning and intent of the code clear to me, the compiler, and to anyone else reading it -- even if they have no knowledge of the arcane rules of precedence

Replies are listed 'Best First'.
Re^2: use of pipes and 'or'
by ikegami (Patriarch) on Jan 24, 2010 at 19:32 UTC

    This makes the meaning and intent of the code clear to [...] anyone else reading it

    I hear this often, but I don't see the truth of it. For example, take

    my $num_lines = $header_lines + $lines_per_rec * $num_recs;

    Even if you didn't know that multiplication has higher precedence than addition, you still know what the statement does. How about the operators relevant to the topic. Is there any doubt as to what the programmer wants the following to do?

    open my $fh, '<', $qfn or die $!;
    my $foo = $bar || 123;

    Simply assume that the programmer knew what he was doing. Extra parens can actually make it harder to read.

    If you're debugging, simply verify your assumption. Check the statement does what you it should. It's much quicker and more reliable then parsing through the complex statement that would require parens anyway

    That said, I do tend use parens around the parameters of my function calls. But not for readability reasons. I do so because Perl doesn't handle omitting those very well in many circumstances.