in reply to Useful uses of redo?

I use redo a lot for loops with multiple steps, often involving database work that must be atomic, tied with failure-prone XMLRPC or http requests.... such as...
while (my $loop = shift) { $db->rollback; $db->begin_transaction; my ($fail1, $fail2, $fail3); $fail1 = eval { # do something complicated to $loop; } $fail2 = eval { # do something more to $loop; } $fail3 = eval { # do something more to $loop; } unless ($fail1 && $fail2 && $fail3) { $db->rollback; redo; } $db->commit; }

20040826 Edit by ysth: add code tags