|Welcome to the Monastery|
Recursion Confusionby live4tech (Sexton)
|on Apr 27, 2013 at 06:12 UTC||Need Help??|
live4tech has asked for the
wisdom of the Perl Monks concerning the following question:
Hello all! I have never completely understood recursion. I have some understanding of what happens when you have one simple recursive call in a subroutine like the following:
The sub factorial is called again and again until $n is equal to 0. Then the 1 is returned and all the past calls are then 'really' executed in reverse order, producing the factorial of the number $n.
OK. But I do not understand how recursion works when there is more than 1 recursive call in a subroutine, like the following:
The output will be:
Can anyone explain precisely why this is the output. If the first recursive call were called over and over untill $n==1 and then they 'fell' back and all the calls were executed in reverse order, the third line of output does not make sense. Is the next recursive line then executed? A step-by-step explanation is what I am looking for.