in reply to Is there a way to unwind the call stack and return a value?

Erm, caller isn't going to do you much good unwinding the call stack (figuring out where in the stack you are, yes; manipulating it, no).

As has been pointed out eval and die are Perl for try and throw. If you're looking for something more oop-y perhaps something like Exception::Class (mentioned here very recently) would serve?

The cake is a lie.
The cake is a lie.
The cake is a lie.