sub divide { my $mid = @_/2; $ITER++; return if @_ == 1; divide(@_[0 .. $mid - 1]); divide(@_[$mid .. $#_]); } for (10 .. 30) { $ITER = 0; divide(1 .. $_); printf "%2d %2d\n", $_, $ITER; }