NAME
Unwind::Protect - Run code after other code, even with exceptions
VERSION
version 0.01
SYNOPSIS
++$depth;
unwind_protect { unsafe_function() }
  after => sub { --$depth };
DESCRIPTION
Sometimes you need to run code after some other code. Two complications are preserving list; scalar; or void context, and dealing with exceptions. Unwind::Protect handles both for you.
unwind-protect exists in Common Lisp with nearly the same interface.
I strive to handle exceptions properly. It's not easy, because of all the tools Perl provides. $SIG{__DIE__} and caller make this code somewhat hairy. If you provide me a failing test where the unwind_protect stack frame is inadvertantly exposed, I will try to fix it.
FUNCTIONS
unwind_protect CODE, ARGS
unwind_protect takes a code block (similar to grep) then some named arguments. Currently the only named argument that is accepted is after which is a coderef to run after the primary code.
AUTHOR
Shawn M Moore, sartak@bestpractical.com