A my declares the listed variables to be local (lexically) to the
enclosing block, file, or eval. If more than one value is listed,
the list must be placed in parentheses.
The exact semantics and interface of TYPE and ATTRS are still
evolving. TYPE is currently bound to the use of fields pragma,
and attributes are handled using the attributes pragma, or starting
from Perl 5.8.0 also via the Attribute::Handlers module. See
perlsub/"Private Variables via my()" for details, and fields,
attributes, and Attribute::Handlers.