What I want to do isn't sane in the general case, but it is sane for the specific case of how the module works. :)
Scope::Upper looks like it's designed to manipulate scoping rules -
doesn't actually impact program flow. What I'm looking for is something a bit more like "pretend you're doing tail recursion and pop the call stack twice rather than once, returning this value". Thanks for the idea though.