在PERL

时间:2016-09-18 16:43:28

标签: perl

我必须在循环 IN PERL 期间每秒执行一次命令。我正在使用纪元时间尝试以下示例代码,但它不起作用,因为它连续打印:

#!/usr/bin/perl    
my $checktime = time() + 1;
while(1) {
    if ( $checktime => time() )
    {
       print "This should be print each second..." . "\n";
       $checktime = time() + 1;
    }
    # DO SOMETHING ELSE
}

我不能使用sleep或freeze命令,因为在循环期间我必须执行其他命令而不中断执行。 你能帮我吗?

谢谢你, 卢卡斯

1 个答案:

答案 0 :(得分:5)

您的if条件是假的,=>不是“大于或等于”运算符,并且比较时间相反,

my $actiontime = time();
while (1) {
    if ( time() >= $actiontime )
    {
       $actiontime += 1;
       print "This should print each second...\n";
    }
    # DO SOMETHING ELSE
}