in reply to Recursive loops
None of this hand-wavy stuff is helpful at all. If you want to know if recursion is appropriate for your problem, don't look at the structure of your code--look at the structure of your problem.
Going to the basics: If you can express your problem as a solution to a degenerate case or a transformation on a smaller version of the same problem, then you can generally solve it with recursion. (Whether it's the best method of solution is still undetermined, though.).
For a contrived version, suppose you wanted to find out how many vowels are in a string. A stupid recursive solution could be done like so:
my $t='the quick red fox jumped over the lazy brown dog'; print count_vowels($t); sub count_vowels { my $string = shift; # Check degenerate case: a single character string. if (length($string) == 1) { return 1 if $string =~ /a|e|i|o|u/i; return 0; } # Break the problem into two smaller problems: my ($part1, $part2) = (substr($string,0,1), substr($string,1) ); return count_vowels($part1) + count_vowels($part2); }
Note: Yes, I've oversimplified a bit.
...roboticus
When your only tool is a hammer, all problems look like your thumb.
|
---|