Context::Preserve - run code after a subroutine call, preserving the context the subroutine would have seen if it were the last statement in the caller