我想在应用程序加载/初始化时显示进度条。
以下代码无法正常工作,但应该能让您了解我试图实现的目标。
有没有可以在BEGIN块中响应的触发事件?
以下代码无法正常工作,但应该能让您了解我试图实现的目标。
my Bool $done-compiling = False;
BEGIN {
start repeat {
print '*';
sleep 0.33;
} until $done-compiling;
};
INIT {
$done-compiling = True;
};
有没有可以在BEGIN块中响应的触发事件?
*
可能不会及时出现;您可能希望将此作为 BEGIN 块的第一行添加:BEGIN { $*OUT.out-buffer = False;
如果需要,在完成 BEGIN/INIT 时间工作后,可以重新启用缓冲。 - Cokeprompt "?? "; say "Done.";
我得到以下输出:(我在提示符处键入了hello world
):**********?? *****h*e*ll*o*****wo*r*ld******** Done.
进度条在程序开始执行后继续进行。 - Jim BollingerINIT
会将标志设置为True
,然后正常执行开始。这在第1行发生,标志被重置为False
。删除= False
(就像我在示例中刚刚做的那样),它应该按照您的意图工作。 :-) - Elizabeth Mattijsen