Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1196157
  • 博文数量: 146
  • 博客积分: 6619
  • 博客等级: 准将
  • 技术积分: 1621
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-29 14:06
文章分类

全部博文(146)

文章存档

2020年(1)

2019年(4)

2018年(3)

2017年(5)

2015年(5)

2014年(7)

2013年(5)

2012年(11)

2011年(15)

2010年(13)

2009年(14)

2008年(63)

分类: Python/Ruby

2012-03-06 13:10:33

 
1.简单实用
  1. my $max = 100;
  2. for(1..$max) {
  3.         my $percent = $_/$max*100;
  4.         print "$_ - $percent % OK!\n";
  5.         sleep(1);
  6. }

2.用点来表示进度,windows的经典模式

  1. #!/usr/bin/perl -w

  2. $| = 1;
  3. my $max = 10;
  4. for(1..$max) {
  5.         print ".";
  6.     print " Complete!" if ($_ == $max);
  7.         sleep(1);
  8. }

3.用斜杠在转动,有点程序的样子

  1. #!/usr/bin/perl -w

  2. local $| = 1;
  3. my @progress_symbol = ('-','\\','|','/');
  4. my $n = 0;
  5. for(my $i=1;$i<=3000;$i++){ print "\r $progress_symbol[$n] $i"; $n = ($n>=3)? 0:$n+1;
  6.         select(undef, undef, undef, 0.1);
  7. }
  8. local $| = 0;

4.时钟的显示方式

  1. #!/usr/bin/perl -w

  2. local $| = 1;
  3. while (1){
  4.         &gettime;
  5.         print "\r $now";
  6.         sleep(1);
  7. }
  8. local $| = 0;
  9. exit;

  10. sub gettime {
  11.         my ($sec,$min,$hour,$day,$mon,$year,$weekday,$yeardate,$savinglightday) = (localtime(time));
  12.         $sec = ($sec < 10)? "0$sec":$sec;
  13.         $min = ($min < 10)? "0$min":$min;
  14.         $hour = ($hour < 10)? "0$hour":$hour;
  15.         $day = ($day < 10)? "0$day":$day;
  16.         $mon = ($mon < 9)? "0".($mon+1):($mon+1);
  17.         $year += 1900;
  18.         $now = "$year.$mon.$day $hour:$min:$sec";
  19. }

5.有进度条显示,最帅的了

  1. #!/usr/bin/perl -w
  2. # Author: Zhao
  3. # Date: 2009.12.22
  4. # Purpose: simulate the progress bar

  5. $n = 30;
  6. for($i=1;$i<=$n;$i++){
  7.         proc_bar($i,$n);
  8.         select(undef, undef, undef, 0.2);
  9. }
  10. ;

  11. sub proc_bar{
  12.         local $| = 1;
  13.         my $i = $_[0] || return 0;
  14.         my $n = $_[1] || return 0;
  15.         print "\r [ ".("\032" x int(($i/$n)*50)).(" " x (50 - int(($i/$n)*50)))." ] ";
  16.         printf("%2.1f %%",$i/$n*100);
  17.         local $| = 0;
  18. }
阅读(5159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~