Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: how to loop through many arrays

by wind (Priest)
on Jun 19, 2011 at 02:54 UTC ( #910376=note: print w/replies, xml ) Need Help??


in reply to how to loop through many arrays

My only advice is to just do it. You can compile the arrays into a list of arrays, or you could add them to a hash where you give each a name. Either way, just iterate on each array and use List::Util->reduce to determine the position of the max element.

use List::Util qw(reduce); use strict; use warnings; my @array1 = (1,2,3,4,8); my @array2 = (1,4,2,4,5); my @array3 = (1,6,1,7,5); for my $array (\@array1, \@array2, \@array3) { my $max_pos = reduce {$array->[$b] > $array->[$a] ? $b : $a} keys +@$array; print "Max is $array->[$max_pos] at position $max_pos\n"; } =prints Max is 8 at position 4 Max is 5 at position 4 Max is 7 at position 3 =cut

Replies are listed 'Best First'.
Re^2: how to loop through many arrays
by david_lyon (Sexton) on Jun 19, 2011 at 06:46 UTC
    thanks for your help much appreciated!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://910376]
help
Chatterbox?
[Corion]: Yay. Traditional finance situation averted. Bonds can be quoted in amounts (1_000_000 EUR) or per unit (1 unit). And a traditional error is to trade 2_000_000 piece when you meant to trade 2_000_000 EUR.
[Corion]: (one of my scripts simply catches high amounts and I phone people making that trade, ideally before the payment is due)
[Corion]: The sad thing is that my script sits at the end of the pipeline and can only look at the payments due today or tomorrow basically, while there are many more systems further up in the pipeline

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (13)
As of 2017-03-29 11:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Should Pluto Get Its Planethood Back?



    Results (347 votes). Check out past polls.