我必须在循环 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命令,因为在循环期间我必须执行其他命令而不中断执行。 你能帮我吗?
谢谢你, 卢卡斯
答案 0 :(得分:5)
您的if
条件是假的,=>
不是“大于或等于”运算符,并且比较时间相反,
my $actiontime = time();
while (1) {
if ( time() >= $actiontime )
{
$actiontime += 1;
print "This should print each second...\n";
}
# DO SOMETHING ELSE
}