You have I<no idea> how often that would have been useful. It's a great > exception safety mechanism... like C++'s "resource aquisition is > initialization" thingy, but without having to write a class for every > variable.
Have you already forgotten KEEP and UNDO (that we introduced in A4/E4): our $foo = 0; sub do_something { KEEP { $foo = $foo + 1 } commit(); } sub commit { fail if rand < 0.3; } for 1..10 { try { do_something() } } print "$foo\n"; # expect a value of around 7 ;-) Damian