use strict; use warnings; use Data::Dumper; my @list = 1 .. 15; my @array; my $i = 1; while ( my ( $i, $j, $k ) = splice @list, 0, 3 ) { push @array, [ [ $i, $j, $k ], [ 44, 55, 66, 22 ] ]; } for my $arr (@array) { print "@{ $arr->[0] }: @{ $arr->[1] }\n"; } print "\n", Dumper \@array;