in reply to Re^2: catching failures and retrying
in thread catching failures and retrying

Error provides you a generic and extensible framework to handle errors, but it won't do exactly what you're looking for.

You basically need a method of retrying, which can be handled as BrowserUk states, or, based upon your code - can be something like:
# CODE NOT TESTED # for display purposes only # void in Utah my $rc = undef; my $i = 0; do { $rc = go_to_web_page(); } while ( !$rc && $i++ < 3 );
or, perhaps, using Error
# CODE NOT TESTED # for display purposes only # void in Utah my $i = 0; GET_PAGE: while ( $i < 3 ) { try { go_to_web_page(); # the above has to throw some kind of error # for this to work last GET_PAGE; } catch Error with { $i++; }; }
I'm sure there's a cleaner way to do that, but it's just an example off the top of my head (proof of concept).
--------------
It's sad that a family can be torn apart by such a such a simple thing as a pack of wild dogs

Replies are listed 'Best First'.
Re^4: catching failures and retrying
by mickey (Acolyte) on Mar 22, 2005 at 14:00 UTC

    Thanks very much. I like your examples -- I think my problem is that I haven't actually encapsulated each step of the program in a neat way. The necessary values for each step and the side effects each step produces are all entwined with each other.

    So I guess I need to do some work on the general structure of the program.

    Thanks for your help!