I am doing a similar stuff using Storable.
But the strategy itself is not optimal...
storing the FULL data for each snapshot.
I was thinking of incremental storage and inheritance etc..
Originally posted as a Categorized Answer.
Comment on Re: Revision controlled Perl DataStructure