Home: Perl Programming Help: Frequently Asked Questions:
How do I perform an operation on a series of integ



Jasmine
Administrator

Jan 19, 2001, 2:35 PM


Views: 2547
How do I perform an operation on a series of integ

(From the Perl FAQ)

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:

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

For example:

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

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

Code
    foreach $iterator (@array) { 
&my_func($iterator);
}

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

Code
    @results = map { &my_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:

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