sub initial_state { ... return some_state(); } sub some_state { ... if ( ... ) { return some_state(); } else { return final_state() } } sub final_state { ... return; } initial_state();