You can (as in "have the potential to be able to") recover in the eval block. Can you recover in your error sub? I find the block more flexible that way, if that's the sort of thing that's necessary.
(Feel free to drop the leading ampersand. It doesn't add anything in this case, and is often better removed.)