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()"。