use strict;
use warnings;
use LWP::UserAgent;
use feature 'state';
use constant LINES => 30;
my @pages = ('http://www.perlmonks.org', 'http://perldoc.org');
my $ua = LWP::UserAgent->new;
my $read_lines = 0;
my @lines;
for my $url (@pages)
{
my $response = $ua->get($url, ':content_cb' => \&head_only);
if ($response->is_success)
{
print "$_\n" for @lines;
print +("=" x 70), "\n";
}
else
{
die $response->status_line;
}
$read_lines = 0;
@lines = ();
}
sub head_only
{
state $last_line_incomplete = 0;
my ($data, $resp, $protocol) = @_;
my @all_lines = split "\n", $data;
warn "LINES: ", scalar @all_lines, "\n";
if ($last_line_incomplete)
{
my $first_line = shift @all_lines;
$lines[-1] .= $first_line;
}
for my $line (@all_lines)
{
if (++$read_lines > LINES)
{
$last_line_incomplete = 0;
die;
}
push @lines, "line $read_lines: $line";
}
$last_line_incomplete = $data !~ /\n$/;
}
####
print +("=" x 70), "\n"; #what is this?
##
##
======================================================================