加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl:在while循环中睡眠没有引起任何反应

发布时间:2020-12-15 23:20:49 所属栏目:大数据 来源:网络整理
导读:我是Perl的新手.我在一个while循环中写了一个sleep;这是一个非常简单的代码但是没有用. furstruted … use strict;use warnings;main();sub main(){print "hellon";while(1) # #1{ print "go~ "; sleep 2; }} 如果注释掉#1,则打
我是Perl的新手.我在一个while循环中写了一个sleep;这是一个非常简单的代码但是没有用. furstruted …

use strict;
use warnings;

&main();
sub main()
{
print "hellon";

while(1)                    # #1
{   
      print "go~  ";
      sleep 2;      
}
}

如果注释掉#1,则打印“go~”;否则,它只是等待没有任何“去?”打印.
我的目的是定期做一些事情.

任何人都可以给出一些解释/提示吗?

解决方法

go~后尝试添加新行

use strict;
    use warnings;

    &main();
    sub main()
    {
    print "hellon";

    while(1)                    # #1
    {
          print "go~n";
          sleep(2);
    }
    }

解释原因:
stdout流是缓冲的,因此只会在到达换行符后(或者告诉它时)显示缓冲区中的内容.您没有使用换行符,因此文本将被附加到缓冲区,直到缓冲区的大小.

如果您不想使用换行符,请在开头添加以下行

use IO::Handle;
STDOUT->autoflush(1);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读