Nothing requires objects to be implemented as hash references. An object
can be any sort of reference so long as its referent has been suitably
blessed. That means scalar, array, and code references are also fair game.
A scalar would work if the object has only one datum
to hold. An array would work for most cases, but makes inheritance a bit
dodgy because you have to invent new indices for the derived classes.