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