use strict; use warnings; use LWP::UserAgent; my $ua = LWP::UserAgent->new(keep_alive => 1); my $url = "http://example.com/myUrl"; my $token = undef; while(1) { my $res = $ua->get($url, 'Start-From' => $token // "", 'X-AcceptDeltaUpdates' => 'true'); $token = $res->headers->{'token'} if ($res->headers->{'token'}); print $res->decoded_content if ($res->is_success); sleep 4; } #### Array is: ['item1','item2'] Add ['item3'] No update Add ['item4'] No update Add ['item5'] No update ... #### use strict; use warnings; use AnyEvent; use AnyEvent::HTTP; my $url = "http://example.com/myUrl"; my $token = undef; while(1) { my $cv = AnyEvent::condvar; my $instance = http_request GET => $url, headers => { 'Start-From' => $token // "", 'X-AcceptDeltaUpdates' => 'true' }, keepalive => 1, persistent => 1, sub { my ($data, $headers) = @_; $token = $headers->{'token'} if (defined $headers->{'token'}); print $data if ($data); $cv->send; }; $cv->recv; $cv = AnyEvent::condvar; my $timer = AnyEvent->timer(after=>4, interval => 4, cb => sub { $cv->send; }); $cv->recv; } #### Array is: ['item1','item2'] No update No update No update No update No update No update Array is: ['item1','item2','item3','item4'] No update No update No update No update No update No update ...