note
rjt
<p>You say you want to recursively sort an array, so I'll assume you've already done something like:</p>
<c>my @sorted = sort keys %hash;</c>
<p>From there, you mentioned you want to recursively take 10 elements at a time. It's very easy to do this iteratively, but to specifically do it recursively as you've asked is easy, too:</p>
<c>
my @sorted = ('A'..'Z'); # probably sort keys %some_hash;
reduce(@sorted);
sub reduce {
my @ten = splice(@_, 0, 10);
return if (!@ten); # Base case
# return if (@ten < 10); # Or do you want to stop if < 10 elements?
print join(',',@ten) . "\n";
return reduce(@_); # Recursion case, remainder of array
}
</c>
<p>Have a look at this page on [http://en.wikipedia.org/wiki/Recursion_%28computer_science%29|recursion] if you need to brush up on your recursion theory. For example, you can switch the recursion case and the processing step, and of course you may want to <c>return</c> a value derived from your computations on <c>@sorted</c>. I leave these as an exercise to the OP. :-)</p>
1002389
1002389