Changes for version 0.09 - 2026-09-11

  • Per-process hash seed; key order and freeze output vary between runs
  • SV* variants: opt-in value copying (fourth new() argument)
  • Maps are not cloned into new threads; maps made in a thread work
  • Storable support for non-SV* variants; SV* variants croak
  • new() croaks on refs, non-numbers and extra arguments
  • ttl below one second rounds up to one
  • Out-of-range integers croak instead of wrapping
  • Downgradable UTF-8 keys equal their Latin-1 form
  • keys, values and items return a count in scalar context
  • Every variant isa Data::HashMap
  • TTL maps stay bounded; lru_skip below 50 takes effect
  • Fix crashes: tied from_hash, destroyed-map merge, re-entrant DESTROY
  • Fix clone losing keys, pop/shift missing entries, put_ttl leak
  • Fix severe LRU and sparse-table slowdowns
  • thaw, from_hash and merge fail cleanly on bad input or low memory
  • POD: caveats section, a page per variant

Modules

Fast type-specialized hash maps with TTL and LRU, in C
hash map from int16 keys to int16 values
hash map from int16 keys to any Perl value values
hash map from int16 keys to string values
hash map from int32 keys to int32 values
hash map from int32 keys to any Perl value values
hash map from int32 keys to string values
hash map from int64 keys to any Perl value values
hash map from int64 keys to int64 values
hash map from int64 keys to string values
hash map from string keys to any Perl value values
hash map from string keys to int64 values
hash map from string keys to int16 values
hash map from string keys to int32 values
hash map from string keys to string values