#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11125178 use warnings; my @list = 1 .. 12; my @AoA = []; my $C = 4; push @{ @{ $AoA[-1] } < $C ? $AoA[-1] : \@AoA }, @{ $AoA[-1] } < $C ? $_ : [ $_ ] for @list; use Data::Dump 'dd'; dd \@list; dd \@AoA;