Perl 为什么a';使用';在BEGIN块中首先执行的语句?
当我执行以下代码时,Perl 为什么a';使用';在BEGIN块中首先执行的语句?,perl,compile-time,Perl,Compile Time,当我执行以下代码时,无法在@INC…中找到SomePackage.pm BEGIN { die; use SomePackage; } 为什么use在die之前执行 使用SomePackage与 BEGIN { require SomePackage; SomePackage->import } BEGIN代码块会尽快执行,也就是说,在它被完全定义的那一刻。第二个BEGIN(由use)首先完全定义,因此首先执行 因为使用在编译时生效 时间,它不尊重普通人 正在执行的代码
无法在@INC…
中找到SomePackage.pm
BEGIN {
die;
use SomePackage;
}
为什么
use
在die
之前执行 使用SomePackage
与
BEGIN { require SomePackage; SomePackage->import }
BEGIN
代码块会尽快执行,也就是说,在它被完全定义的那一刻。第二个BEGIN
(由use
)首先完全定义,因此首先执行
因为使用在编译时生效
时间,它不尊重普通人
正在执行的代码的流控制
编译
不太确定,但use在编译时计算,die在运行时计算。@M42那么,
BEGIN
块也在编译时计算。