Adds some hash related introspection routines to the hash:: namespace
authorYves Orton <demerphq@gmail.com>
Fri, 26 Oct 2012 09:40:37 +0000 (11:40 +0200)
committerYves Orton <demerphq@gmail.com>
Sun, 28 Oct 2012 11:01:14 +0000 (12:01 +0100)
hash::seed() - returns the current seed
hash::function_name() - returns the hash function
hash::value($string) - returns the hash value of a string

hash::bucket_info() - returns statistics about bucket utilization
of a hash. The first three arguements are keys in hash, buckets in
hash and used buckets in hash. If the hash actually has a hash array
allocated (they are lazily allocated on first update to facilitate
presetting the array size) the a list of counts of bucket lengths
follows, with the 0th count being of 0 empty buckets, 1st count
being the number of buckets with 1 key in it, etc. Only works on
non-magical (untied) hashes.

hash::bucket_array() - returns an arrayref which represents the
buckets of a hash. Each element is either an array ref containing
a list of keys in the bucket, or an integer represent K empty
buckets.  Only works on non-magical (untied) hashes.

Currently these routines are undocumented and untested.


No differences found