use Data::Dumper; my $counter = 'a0000000'; my @x= unpack('(B3)(B3)(B2)(B)(B)(B)(B2)(B3)BBBBB(B11)', pack('H*', $counter)); print Dumper(\@x); #### $VAR1 = [ '101', '000', '00', '0', '', '', '', '', '', '', '', '', '', '' ];