is not what
:read_size_hint => $bytes of
LWP::UserAgent is for?
or in other words: is :read_size_hint the implementation of the HTTP ranges you are talking about?
If i remember the hint word is there because there is no guarantee that the chunk retrieved will be exactly $bytes long: it is merely a hint, which LWP may disregard.
Even with such recomendation i remember i read somewhere, the following example seems to demonstrate that data is retrieved exactly by chunks of desired length, even for bizarre values of $bytes
Obviosly the last chunk will be of arbitrary lenght.
use strict;
use warnings;
use LWP::UserAgent;
my @pages = ('http://www.perlmonks.org','http://perldoc.org');
my $ua = LWP::UserAgent->new;
my $chunk;
foreach my $url (@pages){
$chunk = 1;
print +("=" x 70),"\n","\t\t$url\n",("=" x 70),"\n";
my $response = $ua->get($url, ':content_cb'=>\&head_only,':rea
+d_size_hint' => $ARGV[0] || 1024);
}
sub head_only{
my ($data,$resp,$protocol) = @_;
print "chunk number ", $chunk++,"\t",length $data," bytes received
+\n";
}
perl webinchunks04hint.pl 2048
======================================================================
http://www.perlmonks.org
======================================================================
chunk number 1 2048 bytes received
chunk number 2 2048 bytes received
chunk number 3 2048 bytes received
chunk number 4 2048 bytes received
chunk number 5 2048 bytes received
chunk number 6 2048 bytes received
chunk number 7 2048 bytes received
chunk number 8 2048 bytes received
chunk number 9 2048 bytes received
chunk number 10 2048 bytes received
chunk number 11 2048 bytes received
chunk number 12 2048 bytes received
chunk number 13 2048 bytes received
chunk number 14 2048 bytes received
chunk number 15 2048 bytes received
chunk number 16 2048 bytes received
chunk number 17 2048 bytes received
chunk number 18 2048 bytes received
chunk number 19 2048 bytes received
chunk number 20 2048 bytes received
chunk number 21 2048 bytes received
chunk number 22 2048 bytes received
chunk number 23 2048 bytes received
chunk number 24 2048 bytes received
chunk number 25 2048 bytes received
chunk number 26 2048 bytes received
chunk number 27 2048 bytes received
chunk number 28 2048 bytes received
chunk number 29 2048 bytes received
chunk number 30 2048 bytes received
chunk number 31 2048 bytes received
chunk number 32 2048 bytes received
chunk number 33 2048 bytes received
chunk number 34 2048 bytes received
chunk number 35 2048 bytes received
chunk number 36 2048 bytes received
chunk number 37 1066 bytes received
======================================================================
http://perldoc.org
======================================================================
chunk number 1 2048 bytes received
chunk number 2 2048 bytes received
chunk number 3 2048 bytes received
chunk number 4 2048 bytes received
chunk number 5 2048 bytes received
chunk number 6 2048 bytes received
chunk number 7 2048 bytes received
chunk number 8 2048 bytes received
chunk number 9 361 bytes received
thanks
L*
There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.