use strict;use warnings;&main();sub main(){print "hello\n";while(1) # #1{ print "go~ "; sleep 2; }}
如果注释掉#1,则打印“go~”;否则,它只是等待没有任何“去〜”打印.
我的目的是定期做一些事情.
任何人都可以给出一些解释/提示吗?
解决方法 go~后尝试添加新行use strict; use warnings; &main(); sub main() { print "hello\n"; while(1) # #1 { print "go~\n"; sleep(2); } }
解释原因:
stdout流是缓冲的,因此只会在到达换行符后(或者告诉它时)显示缓冲区中的内容.您没有使用换行符,因此文本将被附加到缓冲区,直到缓冲区的大小.
如果您不想使用换行符,请在开头添加以下行
use IO::Handle;STDOUT->autoflush(1);总结
以上是内存溢出为你收集整理的Perl:在while循环中睡眠没有引起任何反应全部内容,希望文章能够帮你解决Perl:在while循环中睡眠没有引起任何反应所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)