How can you find the sum of an array using just shift and pop?

There are two key points to grasp:

  1. shift not only gives the vaue of the first element of the array, it also removes it, reducing the size of the array by one. Likewise, pop not only gives the value of the last element of the array, it also removes, it, reducing the size of the array by one.

  2. A while loop continues until its condition becomes false. while ( @nums ) { ... } contines to loop until @nums is false. When does this happen? Well, in this case @nums is in scalar context, so its value is the size of the array. As long as the array contains elements, this size is greater than zero, and Perl interprets any non-zero numerical value as “true”. But when the last element is removed, the size of the array falls to zero, a value which Perl interprets as “false”, so the loop ends.

Put these two points together, and the question is easily solved.

Hope that helps,

Athanasius <°(((><contra mundum


In reply to Re: using pop and shift to find the sum of an array by Athanasius
in thread using pop and shift to find the sum of an array by perlguru22

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.