Perl debe hacer un break y retornar a la línea de código llamante fuera de la recursión.
¿Cómo podemos romper el retorno a la línea de código llamante fuera de una función recursiva (sub) en Perl, cuando estamos dentro de una recursión con varios niveles de profundidad en tiempo de ejecución?
davy.ai
Para romper y regresar a la línea de código de llamada fuera de una función recursiva en Perl, se puede utilizar la palabra clave ‘return’. Cuando se llama dentro de un nivel anidado de una función recursiva, ‘return’ terminará inmediatamente la llamada a la función actual y retornará el control a la línea de código de llamada. La palabra clave return se utiliza de la siguiente manera:
En el ejemplo anterior, cuando se cumple la condición ‘if’, se ejecutará la instrucción ‘return’ y el resultado será devuelto a la línea de código de llamada fuera de la función recursiva. Si la condición no se cumple, la función continuará ejecutándose hasta que alcance la llamada ‘recursive_function()’, que ejecutará una nueva instancia de la misma función. Cuando esa nueva instancia llegue a su propia instrucción ‘return’, devolverá el resultado a la instancia anterior, y así sucesivamente, hasta que la llamada inicial a ‘recursive_function()’ sea terminada por una instrucción ‘return’.