http://www.perlmonks.org?node_id=47524


in reply to Re: Power of two round up.
in thread Power of two round up.

On the other hand,

If you want to use horrible and/or (somewhat) obfuscated code, you could try:

sub shifty { my $v = (shift)-1; map { return ++$v } map { $v |= $v >> $_ } (1,2,4,8,16); }
or alternately (the readable version):
sub shifty2 { my $v = (shift)-1; $v |= $v >> $_ foreach (1,2,4,8,16); return ++$v; }
i don't know why i was compelled to post that, but i knew one could reduce the repition and possibly obfuscate the code a little with some obviously useless uses of map doing things it wasn't meant to do...
my $0.02;

jynx