我有一个 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
不会运行,直到它完全地定义(参见文档)直到最后一集结束,这种情况才会发生。}
。
其他的则在更早之前完全定义好的情况下运行。