in reply to Re: Re: Pass on name of array
in thread Pass on name of array

for ($br = 0; $br <= scalar(@$array); $br++)
Please don't add the extra scalar. It confuses your maintainer, unless you comment it as
# we don't need scalar here... it's for the dummies who can't grok sca +lar context yet
So I would fail it out of a code review without that comment.

If someone doesn't understand that <= provides scalar context, they have no business editing my code.

-- Randal L. Schwartz, Perl hacker

Replies are listed 'Best First'.
Re (tilly) 4: Pass on name of array
by tilly (Archbishop) on Apr 06, 2001 at 12:29 UTC
    I think that is too harsh. I often put scalar in when it is not neededfor the same reason that I use parens which are not needed - I know that the code is likely to be edited by someone who has not memorized the various contexts.

    Now in a perfect all Perl world, I would agree with you. But when my code needs to be understood by programmers who are not primarily Perl programmers, well I am confident that I can teach them to remember that Perl has both scalar and list contexts, and they do different things. But when they have to edit my Perl after a month in other languages, I do not believe that they will retain fast reactions for which syntactic constructs imply scalar context.

    So I leave in the crutch, and since everyone knows that I do this deliberately, I don't see any reason to comment it.

    OTOH in code which will only be seen by people who are supposed to be competent Perl programmers, well I drop it...