Tie::Hash::MultiValue allows you to have hashes which store their values in anonymous arrays, appending any new value to the already-existing ones. This means that you can store as many items as you like under a single key, and access them all at once by accessing the value stored under the key.