mparrado8 escribiste:¡Vaya lío! ¿En Perl es igual que en C?
Solo algunas estructuras, funciones y operadores, pero no todas.
mparrado8 escribiste:Y con return 1, ¿cómo sabes a dónde vuelve?
Vuelve a la posición donde fue llamada la subrutina.
mparrado8 escribiste:¿A quién se le llama 1?
A nadie. Es el valor que se devuelve como resultado de la ejecución de la subrutina.
mparrado8 escribiste:En vez de con bucles, según esto de la recursividad ¿lo lógico sería poner varias órdenes y poner las diferentes condiciones con if y darle a return? ¡Qué difícil es esto!
La recursividad es cuando una subrutina se llama a sí misma. Naturalmente, debe existir una
condición de parada para evitar que se entre en un bucle sin fin.
Recuerda las clases de matemáticas: ¿cuál es el factorial de
n? Pues es igual a
n multiplicado por el factorial de
n-1.
Como ves, en la respuesta de lo que es un factorial se usa el propio factorial. Y la condición de parada es que sabemos que el factorial de 1 (o de 0) vale 1.