# for each character, count the on bits in that character my %bits_in; foreach my $char ( map { chr } 0 .. 255 ) { foreach my $bit ( 0 .. 7 ) { $bits_in{ $char } += vec( $char, $bit, 1 ); } } my $count; $count += $bits_in{ $1 } while ( $bools =~ m{([^\000])}g );