use constant MAX_FETCH_ATTEMPTS => 5; use constant RETRY_FETCH_DELAY => 2; sub _get_with_retry { my ( $m, $url ) = @_; my $tries = 0; my $result; until ( $tries == MAX_FETCH_ATTEMPTS() ) { $result = $m->get($url); last if $result->is_success; $tries++; sleep( RETRY_FETCH_DELAY() ); } return $result; }