You might want to be careful using Error. There can be some unexpected negative side-effects. Perrin's write up Re: Re2: Learning how to use the Error module by example has the details. (I've written Exception::Class::TryCatch to bring some try/catch sugar to the Exception::Class module, and you might consider that in place of Error.)
Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.