You also could have a look at
Data::Serializer, it provides a unified interface to the various serializing modules currently available. Adds the functionality of both compression and encryption.
example from cpan:
use Data::Serializer;
$obj = Data::Serializer->new();
$obj = Data::Serializer->new(
serializer => 'Storable',
digester => 'MD5',
cipher => 'DES',
secret => 'my secret',
compress => 1,
);
$serialized = $obj->serialize({a => [1,2,3],b => 5});
$deserialized = $obj->deserialize($serialized);
print "$deserialized->{b}\n";
Drawback may be 'spaces' to store sometimes go wrong. This can be solved by putting them in an array first, and store the array using Data::Serializer.