perl 如何更新_Perl 进度条模块

本文介绍了Perl中的Term::ProgressBar模块的使用方法,包括快速入门示例及包含所有特性的完整脚本,帮助读者掌握如何在Perl程序中实现进度条显示。

53efa93e913cf3605be841d43033556e.png

Term::ProgressBar 模块是一个可以用于生成进度条的 Perl 模块。

安装:cpan -i Term::ProgressBar

最小脚本,展示如何最快学会使用该模块:

#!/usr/bin/env perl

use strict;
use warnings;
use Term::ProgressBar 2.00;

my $max = 50000000;
my $progress = Term::ProgressBar->new($max);

my $next_update = 0;

for (0..$max) {
    $next_update =  $progress->update($_)    # 更新进度条
        if $_ >= $next_update;
}

$progress->update($max)          # 保证进度条为 100%
    if $max >= $next_update;

最全脚本,包含了所有功能和设置:

#!/usr/bin/env perl

use strict;
use warnings;
use Term::ProgressBar 2.00;

my $max = 50000000;
my $progress = Term::ProgressBar->new({
    name    =>   'Counts',   # 进度条名
    count   =>   $max,       # 总数
    remove  =>   0,          # 结束后进度条是否消失
    ETA     =>   'linear',   # 估计剩余时间, undef || linear
#   major_char => '=',       # major 进度条字符
#   minor_char => '*',       # minor 进度条字符
#   fh      =>   *STDERR,   # 输出的文件句柄,*STDERR || *STDOUT
#   term_width => 50,        # 终端宽度
#   silent  =>   0,          # 若为 1,则该模块不进行任何操作
});

# $progress->target($max*2); # 重定义 count 值
# $progress->minor(0);       # 关闭 minor 进度条
# $progress->max_update_rate(0.5);   # 两次更新的最小时间间隔 (s)
# $progress->lbrack('[');    # 进度条左符号
# $progress->rbrack(']');    # 进度条右符号

my $next_update = 0;

for (0..$max) {
    if ($_ % 1000000 == 0) {
        $progress->message(          # 输出信息,但保证进度条在输出信息的下方
            sprintf "Found %dn", $_
        );
    }
    $next_update =  $progress->update($_)    # 更新进度条
        if $_ >= $next_update;
}

$progress->update($max)          # 保证进度条为 100%
    if $max >= $next_update;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值