我试图在命令提示符下打印%的进度.但它不能正常工作.
我想将进度打印为::状态10%已完成,当20%将完成时,它将显示状态20%已完成在同一位置不在新行中.请你帮助我好吗.
码::
$count++;
$per=($count/$total)*100;
print "\nStatus: $per Completed.\r";
sleep 1;
Run Code Online (Sandbox Code Playgroud)
Ren*_*ger 16
模块Term :: ProgressBar似乎能够完成你所追求的目标.
请注意,我还没试过.
编辑嗯,出于好奇,我现在尝试了一个小脚本:
use warnings;
use strict;
use Term::ProgressBar;
my $total = 50;
my $progress_bar = Term::ProgressBar->new($total);
for my $i (1 .. $total) {
sleep (1);
$progress_bar->update($i);
}
Run Code Online (Sandbox Code Playgroud)
它不会完全打印你所要求的内容(例如Status nn% completed
),相反,它会打印一个真正的进度条,例如
10% [===== ]
Run Code Online (Sandbox Code Playgroud)
尽管如此,它似乎是最简单直接的解决方案.
你可以这样做:
use strict;
use warnings;
use Time::HiRes qw(usleep);
local $| = 1;
my @nums = 1 .. 20;
foreach my $c (@nums) {
print "$c";
usleep(100000);
print ("\b" x length($c));
}
print "\n";
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7403 次 |
最近记录: |