Never do in a loop, what can be done outside of it.

I agree, and that's why I like, in particular, the for-loop and, less so, map (and let's just pass over the grep) versions that iterate over ranges of 1 .. $#array or 0 .. $#array-1 and so will never enter the loop. (Again, I haven't actually tested all the preceding code in this thread, only stared at it, but it looks ok.)

Wouldn't your version fail for an array with one element?

That depends on the meaning of "fail."

c:\@Work\Perl\monks>perl -wMstrict -MData::Dump -le "my @ra = (1); my $i = $#ra; ;; my @rb; $rb[ $i ] = $ra[ $i ] + $ra[ --$i ] while $i > 0; dd \@rb " []
But maybe an operation that iterates pairwise over an array with less than a pair of elements should throw an exception or at least issue a warning. Who can say? Only the Great Specificator above.


Give a man a fish:  <%-{-{-{-<


In reply to Re^4: Abusing Map by AnomalousMonk
in thread Abusing Map by writch

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.