I have possibly over simplified my concern. But your replies negate the need for a hash, which confirms my suspicions. The module pointers are excellent, their reading will prove useful for similar problems.
That said Tie::RangeHash looks very useful, and I'll do some benchmarking to see if it's worth while.
The hash implementation I used should work for the time being, however I suspect that the actual data source will grow in magnitudes making db interaction and SQL statements more attractive. Again more benchmarking.
My most heartiest thanks for the pointers and replies.