Perl 编程/关键字/package
外观
Thepackage关键字声明BLOCK或给定命名空间内的编译单元的其余部分。包范围由提供的BLOCK或从声明到当前范围的结束,这可能是封闭的块、eval 或文件。换句话说,如果没有BLOCK,范围就像使用 my、our 和 state 运算符一样。只有被覆盖或特殊的标识符(如ARGV, ENV,以及STDOUT资格进入main:被豁免。
只有动态变量受package关键字的影响。用 my、our 和 state 创建的词法范围变量被豁免。允许在多个地方切换到一个包,因为这仅确定编译器为该块的其余部分使用的默认符号表。带有其包名称前缀的标识符可以访问另一个包,例如$SomePack::var或ThatPack::INPUT_HANDLE。如果没有包名称,则假设主包$::sail被理解为$main::sail.
用VERSION,包将给定命名空间中的$VERSION变量设置为具有提供的版本对象的版本。VERSION. VERSION必须是严格风格的版本号,至少有三个组件,如 version 模块定义的那样,$VERSION应在一个包中只设置一次。
package NAMESPACE
package NAMESPACE VERSION
package NAMESPACE BLOCK
package NAMESPACE VERSION BLOCK