@arr = qw ( up down in out left right );
####
@sel = ( 1, 3, 4 );
####
@my_items = Magic(@arr, @sel);
####
$bitmask = MoreMagic(@arr, @sel);
[...other work...]
@my_items = BetterMagic(@arr, $bitmask);
####
@arr = qw ( up down in out left right ); # 6 elements
@sel = ( 1, 3, 4 );
$mask = 0b000000; # Need to set this to have as
# many bits as the size of @arr
# Maybe better to pass it in
# by reference?
printf(" org \$mask: %0b\n", $mask);
@revsel = reverse(@sel);
foreach $item (@revsel) {
vec($mask, $item, 1) = 1;
printf("\$item: $item \$mask: %0b\n", $mask);
}
printf(" final \$mask: %0b\n", $mask);