in reply to Re: Re: Re: Re: Elegantly Selecting Every 3rd Element in an Array.
in thread Elegantly Selecting Every 3rd Element in an Array.

Why do the parens change the precedence of the 'not'?? Seems like 'not' should still have the lowest precedence. Compare these two (which should return every third element, but start with the first), and tell me why they should be different:
not $_ % 3 not ($_) % 3
Update:tye explains below. My opinion (on current precedence rules, not tye's opinion) above.
  • Comment on Re: Re: Re: Re: Re: Elegantly Selecting Every 3rd Element in an Array.
  • Download Code

Replies are listed 'Best First'.
(tye)Re: Elegantly Selecting Every 3rd Element in an Array.
by tye (Sage) on Sep 29, 2001 at 03:26 UTC

    It is the old "if it looks like a function call" rule. Most commonly noted for: print ($this),$that getting parsed as print($this), $that but it also applies to other things, including the not "function". Update, the application of this particular rule to not appears to have been introduced in Perl 5.6.0, so it might even be a bug.

    BTW, the proof that this is the problem is that adding a unary "plus": not +($_+1) % 3 fixes it.

            - tye (but my friends call me "Tye")