[LWP::Simple][示例]下载文件并显示进度

[LWP::Simple][示例]下载文件并显示进度

帖子523066680 » 2015-12-11 20:28

备注:测试的文件地址不一定长期有效,可以修改后尝试

Syntax: [ Download ] [ Hide ]
use IO::Handle;
STDOUT->autoflush(1);
use File::Copy;
use LWP::Simple;

my $url="http://search.cpan.org/CPAN/authors/id/C/CH/CHM/OpenGL-0.6704.tar.gz";
my $file="OpenGL-0.6704.tar.gz";

if (defined $ARGV[0]) {
    system("mode con cols=42 lines=2");
    ShowDetail();
} else {
    use LWP::Simple;
    if ( -e $file ) {
        print "File exists\n";
        <STDIN>;
    } else {
        system("start perl \"$0\" detail");
        getstore($url, $file);
    }
}

sub ShowDetail {
    use Time::HiRes 'sleep';
    my $size=(head($url))[1];
    my $dsize=0;
    my $per=0;
    my $pcs=0;
    while ( $dsize < $size ) {
        sleep 0.5;
        if (-e $file) {
            $dsize=-s $file;
            $per = $dsize/$size*100;
            $pcs="=" x (int($per/4)) . ">";
        }
        print "\b"x80;
        printf("[%-25s] %ldKb %.2f\%",$pcs,$dsize/1024,$per);
    }
    sleep 1;
}
论坛已转移 Code-By.Org 群号 322023604
头像
523066680
版主
 
帖子: 1680
注册: 2012-03-06 15:08

回到 网络

在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客

cron