http://www.perlmonks.org?node_id=1009444


in reply to Get same position value in 2nd array

From your sentence that starts with "Basically" I would conclude that you have 3 values per item, a scalar aka number(A), a string(B) and another value(C). I would guess A has duplicate values (0 for example)? Does B have duplicate values? Does the combination of A and B have duplicate values?

What is the operation that you have to do the most? Checking for values greater than zero? Or searching for C given A and/or B ?

These questions are all important. For example if B has no duplicate values and you most often have to search for C given B you might just use B as key and a subhash or subarray with A and C as data:

$h{$B}= {'number'=>$A,'value'=>$C}; print $h{$B}{value}; if ($h{$B}{number}>0) { ...

Or if checking for values greater than zero is your main activity and most of the scalars(A) are zero then it might even be sensible to split the data into two arrays (or hashes), one for all data with A==0 and another for the data with A>0.