for (1 .. API_ERRORS) { # If a timeout (ie. code 500) occurs, or # some kind of other error, repeat the API call $response = $self->mech->request($request); if ($response->is_success) { # sucessful processing code here... return $response_data; } # all non-success code cause pause, then re-try # elsif ($response->code == 500) { # next; #} sleep(1); } #### my $m2= WWW::Mechanize->new(); # New Mechanize Object for detailed results # may help save memory?? TBD... # update (it did) my $success=0; my $tries=0; while (! $success and $tries++ < 10) { eval { $m2->get($fullurl); }; if (! $@) { $success = 1; } else { print STDERR "Error: Retry Attempt $tries of 10\n"; print LOG "Error: Retry Attempt $tries of 10\n"; sleep (3); } } die "aborted Web Site Error: $!" unless $success; #ultimate failure!! PROGRAM ABORT !!!!