A couple of thoughts
- the subs in your package have prototypes which expect no arguments (although this won't effect them as methods since methods bypass prototypes)
- you don't need the unless statement in the put method as the hash value will be auto-vivified as an array reference via the push
- this may be better more naturally realised as a tied interface
- why wrap an object around a basic data type as it seems to be merely abstracting away dealing with references?
Apart from the above meanderings it seems fine if that's what you want from your object.
HTH
_________
broquaint