当我执行以下代码时,我得到 Can't locate SomePackage.pm in @INC ...
.
BEGIN {
die;
use SomePackage;
}
为什么use
之前被执行die
?
当我执行以下代码时,我得到 Can't locate SomePackage.pm in @INC ...
.
BEGIN {
die;
use SomePackage;
}
为什么use
之前被执行die
?
use SomePackage
完全等同于
BEGIN { require SomePackage; SomePackage->import }
一个BEGIN
代码块被尽快执行,即在它被完全定义的那一刻。第二个BEGIN
(由 暗示use
)首先完全定义,因此首先执行。
来自http://perldoc.perl.org/functions/use.html
因为 use 在编译时生效,它不尊重正在编译的代码的普通流控制。