my
- my TYPE VARLIST
- my VARLIST : ATTRS
- my TYPE VARLIST : ATTRS
A
my
declares the listed variables to be local (lexically) to the enclosing block, file, oreval
. 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 thefields
pragma, and attributes are handled using theattributes
pragma, or starting from Perl 5.8.0 also via theAttribute::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: