显示LWP::UserAgent下载进度

Display LWP::UserAgent download progress

我正在使用 LWP::UserAgent 和 :content_file 选项将一个大文件直接下载到 Perl 文件。

这是我的代码的简化示例:

require LWP::UserAgent;

my $ua = LWP::UserAgent->new;
$ua->timeout(3600);
$ua->env_proxy;

my $response = $ua->get(
    'http://example.com/largefile.xml',
    :content_file   => 'path/to/file/largefile.xml'
);

if ($response->is_success) {
    print "File downloaded\n";
}
else {
    die $response->status_line;
}

有什么方法可以显示下载状态的百分比吗? (或类似于 wget 输出的内容)

10% [===>                                  ]  65.120.154  527K/s 

来自documentation for the module.

$ua->show_progress

$ua->show_progress( $boolean )

Get/set a value indicating whether a progress bar should be displayed on the terminal as requests are processed. The default is FALSE.

已经回答了你的问题,但我想推荐以下 2 个模块。