I am workong on a school assignment that involves testing all the different combinations of array elements in @speeds. Currently I am using this code to do that:
```use strict;
use Math::monthly::CarClumps qw\count\;

my ( @order , @clumps,
\$total , @speeds );

# speed of cars
@speeds = ( 50 .. 59 );
# initialize @clumps as {0}
@clumps = (0) x ( @speeds + 1 );

clumps ( @speeds );

foreach my \$i ( 1 .. \$#clumps )
{ print \$i + \$speeds[0] - 1, " :\t\$clumps[\$i]\t( ",
( \$clumps[\$i] * 100 / \$total ), "% )\n" }
print "total :\t\$total ( = ", scalar @speeds, "! )\n";

exit 0;

sub clumps {
my @cars  = @_;
if ( scalar @cars eq 0 )
{ \$clumps[count(@order)]++; \$total++ }
else
{ foreach ( 0 .. \$#cars)
{ my \$speed = pop @cars;
unshift @order, \$speed;
clumps( @cars );
unshift @cars, \$speed;
}
}
shift @order;
return 0;
}
The clumps() sub uses a tree recursion model which is really slow (particularly on a 90mhz box). Has anyone had to do a similar thing and can suggest a better model for testing all the combinations of @speeds?

In reply to Finding all Combinations by narse

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

• Are you posting in the right place? Check out Where do I post X? to know for sure.
• Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
• Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
• Want more info? How to link or or How to display code and escape characters are good places to start.