FAQ 4.8 How do I perform an operation on a series of integers?

Discussion in 'Perl Misc' started by PerlFAQ Server, Feb 25, 2011.

  1. This is an excerpt from the latest version perlfaq4.pod, which
    comes with the standard Perl distribution. These postings aim to
    reduce the number of repeated questions as well as allow the community
    to review and update the answers. The latest version of the complete
    perlfaq is at http://faq.perl.org .

    --------------------------------------------------------------------

    4.8: How do I perform an operation on a series of integers?

    To call a function on each element in an array, and collect the results,
    use:

    @results = map { my_func($_) } @array;

    For example:

    @triple = map { 3 * $_ } @single;

    To call a function on each element of an array, but ignore the results:

    foreach $iterator (@array) {
    some_func($iterator);
    }

    To call a function on each integer in a (small) range, you can use:

    @results = map { some_func($_) } (5 .. 25);

    but you should be aware that the ".." operator creates an array of all
    integers in the range. This can take a lot of memory for large ranges.
    Instead use:

    @results = ();
    for ($i=5; $i <= 500_005; $i++) {
    push(@results, some_func($i));
    }

    This situation has been fixed in Perl5.005. Use of ".." in a "for" loop
    will iterate over the range, without creating the entire range.

    for my $i (5 .. 500_005) {
    push(@results, some_func($i));
    }

    will not create a list of 500,000 integers.



    --------------------------------------------------------------------

    The perlfaq-workers, a group of volunteers, maintain the perlfaq. They
    are not necessarily experts in every domain where Perl might show up,
    so please include as much information as possible and relevant in any
    corrections. The perlfaq-workers also don't have access to every
    operating system or platform, so please include relevant details for
    corrections to examples that do not work on particular platforms.
    Working code is greatly appreciated.

    If you'd like to help maintain the perlfaq, see the details in
    perlfaq.pod.
     
    PerlFAQ Server, Feb 25, 2011
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Henry van der Beek

    Perform operation whenever dir is altered

    Henry van der Beek, Jul 5, 2004, in forum: Python
    Replies:
    1
    Views:
    469
    John Lenton
    Jul 5, 2004
  2. Tim Golden
    Replies:
    0
    Views:
    414
    Tim Golden
    Jul 5, 2004
  3. ssg31415926
    Replies:
    3
    Views:
    1,932
    ssg31415926
    Aug 3, 2007
  4. Rishi
    Replies:
    1
    Views:
    3,778
    Alexey Smirnov
    Nov 11, 2009
  5. jiten

    cannot perform desired operation

    jiten, Apr 16, 2010, in forum: C Programming
    Replies:
    4
    Views:
    388
    spinoza1111
    Apr 17, 2010
Loading...

Share This Page