Memory footprint of your hash doesn't matter so long as it fits in memory. Once it fits in memory it is unlikely that a fronting hash will make any difference except to slow things down. It isn't clear what you mean by collisions, but if you mean two keys ending up in the same bucket of the hash, then you should just let Perl deal with it. The buckets of a hash are a linked list, likely short, and perl will be relatively efficient in traversing that list.
Comment on Re: Small Hash a Gateway to Large Hash?