请问下Perl能实现下载进度条么?

大家能帮帮忙么?
问题已解决,多谢各位。

方法来自PerlMonks  :  http://www.perlmonks.org/index.pl?node_id=724193

#!/usr/bin/perl -w
use strict;

sub CopyFileProgress ( ) {
        my        $src         = shift;
        my        $dst                = shift;
        my        $callback        = shift;
        my        $num_read;
        my        $num_wrote;
        my        $buffer;
        my        $perc_done = 0;
       
        open (SRC, "< $src") or die "Could not open source file [$src]: $!\n";
        open (DST, "> $dst") or die "Could not open destination file [$dst]: $!\n";
        binmode SRC;
        binmode DST;
       
        my         $filesize        = (-s $src) or die "File has zero size.\n";
        my        $blksize  = int ($filesize / 10);
       
        while (1) {
                $num_read = sysread(SRC, $buffer, $blksize);
                last if ($num_read == 0);                                                                                
                die ("Error reading from file [$src]: $!\n") if (!defined($num_read));       
               
                my $offset = 0;
                while ($num_read){
                        $num_wrote = syswrite(DST,$buffer,$num_read,$offset);
                        die ("Error writing to file [$dst]: $!\n") if (!defined($num_wrote));
                        $num_read -= $num_wrote;
                        $offset        += $num_wrote;
                }
               
                $perc_done += 10 unless $perc_done == 100;
                &$callback($perc_done) or die ("Copy canceled.\n");               
        }       
}

sub FileProgress () {
        my $percent = shift;
        print "$percent% done\n";       
        return 1;
}

if (@ARGV == 2) {
        my        $source                = shift @ARGV;
        my        $destination         = shift @ARGV;
        &CopyFileProgress($source,$destination,\&FileProgress);
}else{
        print "\n\nUSAGE: copy.pl <source filename> <destination filename>\n\n";
}

另外,Monks上有人建议,在不考虑移植性的情况下,用CopyFileEx完成操作,它支持一个回调函数用于显示进度条,另外自然更稳定性能更好。

版主,我服你了,大家都是一起讨论问题,你至于用这样的态度回答人家吗
路过~
不过个人认为楼主没说错什么话
flw很善于挑起口水战噢