use Data::Dumper; my $counter = 'a0b0c0d0'; my @x= unpack('(B3)(B3)(B2)(B)(B)(B)(B2)(B3)BBBBB(B11)', pack('H*', $counter)); print Dumper(\@x); __DATA__ $VAR1 = [ '101', '101', '11', '1', '', '', '', '', '', '', '', '', '', '' ];