in reply to Exiting script from subs

It's acceptable. I recommend using die() and documenting that this can happen and under exactly what circumstances, so that whoever is re-using your code isn't left scratching their head when it happens. And more importantly, so that they can, by calling your sub in an eval, catch your die and deal with it more gracefully if they need to.

You'll also want to catch and examine those dies in your tests.