ok jasper@
Tie::Hash::MultiValue allows you to have hashes which store their values in anonymous arrays, appending any new value to the already-existing ones.