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
块也在编译时计算。