in reply to Exiting script from subs

I don't see any problem with exiting from within a subroutine, no matter how deep, if it makes sense. I do, however, see a problem in using the & sigil when you don't need it. It confuses me into wondering what do_task is, when it's just a normal perl subroutine (as opposed to a reference, or a sub with a prototype (which I would wonder what the prototype was) or ...). The visual clue I use for calling functions is the parentheses. The & is only there when it needs to be - it's a good visual clue that something abnormal is going on.