
Lexical::accessor generates coderefs which can be used as methods to access private attributes for objects.
the private attributes are stored inside-out, and do not add any accessors to the class' namespace, so are completely invisible to any outside code, including any subclasses. this gives your attribute complete privacy: subclasses can define a private (or even public) attribute with the same name as your private one and they will not interfere with each other.