Sorry, but I'm not very familiar with SNP. Are the values represented by 'coord1', etc fully unique, or do they repeat per chromosome (or something else)? If the coord values are unique, you might be able to trade space for time. You could create a second target region hash, key'ed by the coord's, and have the chr for each coord as its value. Then, instead of walking an array every time, you would just check if chr was in your current HOA, and the coord was in the new hash. This should be faster, if most arrays are of non-trivial length
fnord