DB<138> undef $m0; vec($m0,$_,1)=1 for 0,2,8,9,10 DB<139> p unpack('b16', $m0) # ok LSB left 1010000011100000 DB<140> p unpack('B16', $m0) # MSB, but inside LS bytes chunks 0000010100000111 DB<142> $x+= 2**$_ for 0,2,8,9,10 DB<144> printf "%016b",$x # what I expected 0000011100000101 DB<145> #### B A bit string (descending bit order inside each byte). #### DB<184> p reverse unpack ('B8B8',$m0) 0000011100000101 DB<185>