sub foo { { ... # Recurse but without actually calling foo() again. @_ = ...; redo; } }