in reply to exit calling subroutine

Maybe it's my age but I don't like dropping out of routines like this preferring a one way in, one way out approach.
begin(); do_stuff(); end(); sub do_stuff { my status = stuff(); if (status is ok) { more_stuff(); } return status; }
then taking this a little further, make sure that stuff() and more_stuff() return status values
begin(); do_stuff(); end(); sub do_stuff { return stuff() and more_stuff(); }
Real code tends to be more complex than this and sometimes it is cleaner to take the short cut.