my $string1 = '01010110111000';
my $string2 = '11101101100010';
my ( $c00, $c01, $c10, $c11 ) = (
( $string1 | $string2 ) =~ tr[0][0], # count 00
( ~$string1 & $string2 ) =~ tr[\1][\1], # count 01
( $string1 & ~$string2 ) =~ tr[\1][\1], # count 10
( $string1 & $string2 ) =~ tr[1][1], # count 11
);
####
my $len = length $unpacked_string;
my $packed_string = pack qq{b$len}, $unpacked_string;
##
##
my $unpacked_string = unpack qq{b$len}, $packed_string;