use strict; use warnings; use Data::Dumper; my @xyz = map { sprintf q{%02d}, $_ } 1 .. 23; my @xyzChunks = (); print Data::Dumper->Dumpxs( [ \ @xyz, \ @xyzChunks ], [ qw{ *xyz *xyzChunks } ] ); print q{=} x 50, qq{\n}; push @xyzChunks, [ splice @xyz, 0, 10 ] while @xyz; print Data::Dumper->Dumpxs( [ \ @xyz, \ @xyzChunks ], [ qw{ *xyz *xyzChunks } ] ); print q{=} x 50, qq{\n}; foreach my $raXyzChunk ( @xyzChunks ) { print qq{Debug: @$raXyzChunk\n}; } #### @xyz = ( '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23' ); @xyzChunks = (); ================================================== @xyz = (); @xyzChunks = ( [ '01', '02', '03', '04', '05', '06', '07', '08', '09', '10' ], [ '11', '12', '13', '14', '15', '16', '17', '18', '19', '20' ], [ '21', '22', '23' ] ); ================================================== Debug: 01 02 03 04 05 06 07 08 09 10 Debug: 11 12 13 14 15 16 17 18 19 20 Debug: 21 22 23