2
는 해당 옵션 (Range
, :content_file
, :content_cb
, size_hint
)을 설정할 수있는 가능성을 가진, Mojo::UserAgent으로 다음처럼 작성할 수있는 방법이 있나요.모조 :: 해당 UserAgent 얻을() - 정의 콜백
#!/usr/bin/env perl
use warnings;
use 5.12.0;
use LWP::UserAgent;
use File::Basename;
my $url = 'ftp://ftp.vim.org/pub/vim/runtime/spell/en.utf-8.spl';
my $file = basename $url;
my $ua = LWP::UserAgent->new();
my $bytes = 0;
open my $fh, '>>:raw', $file or die $!;
my $res = $ua->get(
$url,
'Range' => "bytes=$bytes-",
':content_cb' => sub {
my ($chunk, $res, $proto) = @_;
print $fh $chunk;
state $old_size = 0;
my $size = tell $fh;
my $total;
say 'chunk size :', $size - $old_size;
if ($total = $res->header('Content-Length')) {
say 'total size : ', $total;
say 'downloaded : ', $size;
say 'remaining : ', $total - $size;
}
say "";
$old_size = $size;
}
);
close $fh;
say $res->status_line;
당신의 목표는 무엇인가? 왜 작업 프로그램에서'LWP'를'Mojo :: UserAgent'로 바꾸고 싶습니까? – Borodin
일부 스크립트에서는 Mojolicious를 사용하고 있습니다. 그래서 언젠가 이런 식으로 뭔가가 필요하다면 이미 해결책을 얻었을 것입니다. –