If the objects are "simple" then concatenate all the fields and run that through Digest
. Then cache the result. Be sure to concatenate hash values sorted by key if you intend to use the digests between instances of perl, since the hashing order changes per invocation.
If they have deep nested structures look at Data::Structure::Util
, or investinage Object::Signature
which uses Storable
under the hood, and returns a digest of the serialized data. Likewise, cache the result in an additional attribute of the object.