At a conceptual level, packaging a set of boolean values into a bitmask does seem to be equivalent to packaging them in a hash, and at an implementation level, it does seem like a way to save space. But I think it's a dangerous way to proceed, for several reasons:
1. It's too easy to do hard-to-detect damage other bits as a side-effect of making a change to one bit.
2. The steps you might take to avoid collateral damage have the effect of burdening the application. Compare
$args{FOO) = 1;
$args{BAR} = 0;
to
setbit($args, FOO};
clearbit($args, BAR);
3. Method signatures (such as they are in Perl) lose expressive power when arguments are packed together. It gets harder to get a sense of what a chunk of code is doing when you can't quickly and easily tell what a subroutine or method is taking as input (or producing as output). Conceptually, you're widening the method signature to include all of the values packed in to the bit pack, whether they're used or not.
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
|
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.