math is hard (to remember)

Randal L. Schwartz merlyn at
Fri Jul 13 00:48:52 CDT 2001

>>>>> "cabney" == cabney  <cabney at> writes:

cabney> On 12 Jul 2001, Randal L. Schwartz wrote:
>> Here's one way that involves more recursion than iteration.  I've come
>> up with ways that involve more iteration than recursion too. :)
cabney> [shnibble]

cabney> hmmm, something like this?? (this is very nice, thanks again. :)

No, I was thinking something more like:

my @list = qw(red orange yellow green blue purple);
for (my $i = 1; $i < 1 << @list; $i++) {
  my $bits = unpack "B*", pack "N", $i;
  my @out = grep $bits =~ s/(.)$// && $1, @list;
  print "$i = @out\n";

Works up to 32 items.  More requires a nicer bit-increment algorithm,
but when are you going to do this with 32 items or more? :)

Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn at> <URL:>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See for onsite and open-enrollment Perl training!

The posting address is: san-diego-pm-list at

List requests should be sent to: majordomo at

If you ever want to remove yourself from this mailing list,
you can send mail to <majordomo at> with the following
command in the body of your email message:

    unsubscribe san-diego-pm-list

If you ever need to get in contact with the owner of the list,
(if you have trouble unsubscribing, or have questions about the
list itself) send email to <owner-san-diego-pm-list at> .
This is the general rule for most mailing lists when you need
to contact a human.

More information about the San-Diego-pm mailing list