在阶段器中§

有关BEGIN 的主要文档,请参阅上下文

在编译时运行,一旦阶段器中的代码编译完成,只运行一次。

返回值可供以后阶段使用。

say "About to print 3 things";
for ^3 {
    say ^10 .pick ~ '-' ~ BEGIN { say  "Generating BEGIN value"^10 .pick }
}
# OUTPUT: 
# Generating BEGIN value 
# About to print 3 things 
# 3-3 
# 4-3 
# 6-3

阶段器中的 ^10 .pick 只生成一次,然后在运行时由循环重复使用。请注意 BEGIN 块中的 say 如何在循环上方的 say 之前执行。