There are very, very few places when you need this library. I think the only place it's really needed is when you must interact with code that you don't control, and which decides how to behave based on its caller, and you need to change the call stack. This is *extremely* rare. Almost every use of Sub::Uplevel is a mistake. It is *very* useful to have on those rare occasions when it is needed, but it would be better, whenever possible, to simply fix the other end of the problem to not require Sub::Uplevel.