in reply to Binary to Decimal Translation

An easier way to do the conversion might be something on the order of:
sub dec2bin { return sprintf("%b",shift); }
The bin2dec function you have seems the same as that of merlyn in RE: Binary to Decimal (zdog's way), but I'm sure there's a better way.

Either way, I'm not exactly sure what you're getting at with your requirement for binary math. If you want to know the number of possibilities for a given set of bits, you can just do this:
sub combo { return (2**shift)-1; }