A my declares the listed variables to be local (lexically) to the
enclosing block, file, or eval. If more than one variable is listed,
the list must be placed in parentheses.
The exact semantics and interface of TYPE and ATTRS are still
evolving. TYPE may be a bareword, a constant declared
with use constant
, or __PACKAGE__. It is
currently bound to the use of the fields
pragma,
and attributes are handled using the attributes
pragma, or starting
from Perl 5.8.0 also via the Attribute::Handlers
module. See
Private Variables via my() in perlsub for details, and fields,
attributes, and Attribute::Handlers.
Note that with a parenthesised list, undef can be used as a dummy
placeholder, for example to skip assignment of initial values: