You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Perl for循环迭代如何实现每5次批次阶梯递增sleep延迟时长

Perl脚本按批次阶梯递增sleep时长的实现方案

你原脚本的问题是每次循环迭代都给延迟值加5,不符合「每5次迭代为一个批次统一延迟、每跨一个批次延迟加5秒」的规则,直接通过迭代序号计算对应延迟即可,不需要在循环增量步维护累加的延迟变量,逻辑更稳定。

修改后完整代码

use strict;
use warnings;
use v5.26.1;

my $num = 100;

for my $i (1..$num) {
    # 按迭代序号计算当前批次对应的延迟
    my $d = int(($i - 1) / 5) * 5;
    say "delaying iteration $i by $d";
    sleep($d);
}

逻辑说明

延迟计算规则完全匹配需求,验证如下:

  • 第1-5次迭代:($i-1)取值0-4,除以5取整结果为0,计算得延迟$d=0
  • 第6-10次迭代:($i-1)取值5-9,除以5取整结果为1,计算得延迟$d=5
  • 第11-15次迭代:($i-1)取值10-14,除以5取整结果为2,计算得延迟$d=10
  • 后续每完成5次迭代,取整结果自动加1,延迟对应增加5秒,完全符合阶梯递增规则

如果你习惯使用原脚本的C风格for循环写法,也可以用以下版本,运行效果完全一致:

use strict;
use warnings;
use v5.26.1;

my $num = 100;

for (my $i = 1; $i <= $num; $i++) {
    my $d = int(($i - 1) / 5) * 5;
    say "delaying iteration $i by $d";
    sleep($d);
}

内容的提问来源于stack exchange,提问作者rshdzrt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 06:12:39