use 5.034; use List::MoreUtils qw( natatime ); use YAML::XS qw( Dump ); my $data = pack("H*", "0000230ebb0000002b0ece000000330ee200"); my @vals = unpack("(CCSS)*", $data); my $it = natatime 4, @vals; my @grouped; while( my @cur = $it->() ) { push @grouped, [ @cur ]; } say Dump( \@grouped ); __END__ $ perl fooble.plx --- - - 0 - 0 - 3619 - 187 - - 0 - 0 - 3627 - 206 - - 0 - 0 - 3635 - 226