in reply to Finding hash key related to closest value
IMHO, all of these “solutions” are, in this particular case, much more expensive than ... a brute-force search through an array of 2-tuples consisting of [key_value, frequency]. Even if you are dealing with, say, a few hundred “buckets” in such an array, you are still coming out far ahead of all of these other calisthenics, which, as you see, are shamelessly building arrays of their own. Sometimes, a simple loop that iterates through an entire, moderately sized, data structure, knowing that it will only have to make one complete pass through that structure (although it will be required to do all of this, every time ...), really does turn out to be the fastest way.
A “hash” is a very special-purpose structure: it’s good for searching for discrete, unordered keys, particularly those that have a string representation. If that’s not true for your situation, you shouldn’t be coercing a hash into doing what it isn’t designed to do. The decision instead should be made whether a more-complicated but purposeful data structure is actually worth the effort. If so, grab one from CPAN. Otherwise ... and this is strictly JM2CW ... I say, just foreach it.
|
|---|