#!/usr/bin/env perl use strict; use warnings; use Data::Printer; my @original = (1,2,3,4,5,6,7,8,9); my $numberofarrays = 2; my @arrayrefs; while (@original) { foreach (0..$numberofarrays-1){ if (@original) { push @{$arrayrefs[$_]}, shift @original; } } } p @arrayrefs;