For more complex structures (constaining refs)
you can play with MLDBM
It uses
Data::Dumper by default to serialize your data,
but you can use your favourite persistence module instead, like
Storable for example...
"
Only
Bad
Coders
Badly
Code
In
Perl" (OBC2IP)