大家好,最近在写一个mysql备份程序,想实现下perl备份完成的进度完成进度条,不知道应该怎么做,请大家帮忙~:P
by llhhtt7788 - Perl - 2012-10-26 10:03:32 阅读(1129) 回复(0)
[code] use Thread; $|=1; sub preossbar{ my @para=@_; while(true) { print "\b-->"; sleep(int(rand(3))); } } sub somework{ my @para=@_; while(true) { sleep(int(rand(3))); } } print "ready!"; print " start !"; $thread1=Thread->new(\&preossbar,'xx'); $thread2=Thread->new(\&somework,'oo'); $thread1->join(); $thread2->join(); [/code]
在网上查了些资料, 多数进度条例子中下载工具都是wget, 但是当前项目中用的是原始的xcopy~ 测试发现只要下载开始,xcopy就在目的路径下建立一个和源文件一样大小的文件,而不是像有些工具一样随着下载的进行变化文件大小;另外看perldoc的说明,在system运行外部命令的时候父进程是挂起的。由于这两个障碍的存在,是不是就不能用perl实现这种条件下的进度条了? 多谢各位!
我是这样想的。 #!/usr/bin/perl for(my $i=0; $i<20; $i++){ #执行一些时间长的脚本 print "\r"; print $i; #显示进度$i/$steps*100 } 用 \r 清掉上个print,总感觉这样做不好(光标会在数字上滚动),估计会有更好的方法。不知道大家这种情况会怎么写
实现文件下载很简单,但是用LWP里的getstore只有在执行完成后才会继续运行,该怎么做才能做出像wget那样的下载进度条呢? [code] #!/usr/bin/perl use LWP::Simple; $| = 1; my($url,$file,@header,$filesize); $url = $ARGV[0]; $file = $ARGV[1]; @header = head($url); if (@header) { $filesize = $header[1]; } else{ print "Get file size failed,exit download."; exit 0; } @header = (); getstore($url,$file); ...
bash-3.00# perl -e '($sec,$min,$hour,$mday,$mon,$year) = localtime(115328058204);$year += 1900;print ("$year-$mon-$mday $hour:$min:$sec\n");' perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = (unset), LANG = "c" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). 1949-10-5 13:0...
求perl实现: 我想把很多的音乐文件名变成首字母大写,其余小写。 比如:j.s. bach- jesus bleibet meine freude. 要将它变成J.S. Bach- Jesus Bleibet Meine Freude. 再如有些有括号的:heidenroslein (d257)要变成Heidenroslein (D257) 求这样的shell语言
请教一个问题:有类似这样一个文件,每个Node分别对应一个label, { Node1 [label="cosD"]; Node1 -> Node2 ; Node2 [label="sinD"]; Node2 -> Node3; Node3 [label="tanD"]; Node1 -> Node3 ; ... ... ... ... } 想写个脚本,将每个Node用其对应的label来替换。也就是说将文件中所有Node1替换为cosD,所有Node2替换为sinD,Node3 替换为tanD,以此类推,因为 Node数目很多,想用脚本批量替换,请问达人们该如何实现?
本帖最后由 susie_gan 于 2011-02-20 23:02 编辑 我有一个文件,行数达到上万行,格式如下(取文件的一部分说明) 711 4 8 892 3 6 956 2 5 10904 1 5 32210 5 12 38554 4 6 41362 0 1 56119 6 9 71326 2 6 71348 2 5 88300 8 10 90571 3 10 90606 2 6 90809 1 3 96770 7 10 97473 2 8 100847 1 7 100849 1 7 103319 4 7 105064 1 6 ... 第一列是从小到大的数字,但是不连续,我想实现的操作是以300000为一个窗口,以10000为步长...