my $max_tries = 5; foreach $item (@array) { my $tries = 0; while (!some_test($item)) { die "Failed $tries times, aborting" if ++$tries == $max_tries; print "Failure: $item, trying again after sleep\n"; sleep 10; } print "Success: $item\n"; }