开始 {...};在Perl中

开始 {...};在Perl中

我有一个 perl 脚本:

#!/usr/bin/perl 

BEGIN {
        print "That's BEGIN message\n";
BEGIN { print "That's BEGIN-2 message\n"; };
END { print "That's END message\n"; };
BEGIN { print "That's BEGIN-3 message\n"; };
};

它的工作原理是这样的:

That's BEGIN-2 message
That's BEGIN-3 message
That's BEGIN message
That's END message

但为什么?它必须在第 1 行打印That's BEGIN message还是不打印?

答案1

第一个BEGIN不会运行,直到它完全地定义(参见文档)直到最后一集结束,这种情况才会发生。}

其他的则在更早之前完全定义好的情况下运行。

相关内容