my VARLIST
my TYPE VARLIST
my VARLIST : ATTRS
my TYPE VARLIST : ATTRS

my 声明所列变量为封闭块、文件或 eval 的局部(词法)变量。如果列出了多个变量,则必须将列表放在括号中。

请注意,对于带括号的列表,undef 可用作虚拟占位符,例如跳过初始值的分配

my ( undef, $min, $hour ) = localtime;

在同一作用域或语句中重新声明一个变量将“遮蔽”上一个声明,创建一个新实例并阻止对上一个实例的访问。这通常是不需要的,如果启用了警告,则会导致 shadow 类别中的警告。

TYPE 和 ATTRS 的确切语义和接口仍在发展中。TYPE 可以是裸字、使用 use constant 声明的常量或 __PACKAGE__。它当前绑定到 fields pragma 的使用,并且属性使用 attributes pragma 处理,或者从 Perl 5.8.0 开始也可以通过 Attribute::Handlers 模块处理。有关详细信息,请参见 "perlsub 中的 Private Variables via my()"