in reply to Seeking help with split!
As Happy-the-monk said, your requirements are unclear. If you have a string with a bunch of single-quotes in it, try this (using a different delimiter for the string):
>perl -wMstrict -le "my $data = q{'A','B','C','D','E','F','G','H','I','J','K','L','M'}; ;; my @ra = split m{ (?: , [^,]+){3} \K , }xms, $data; ;; printf qq{:$_: } for @ra; " :'A','B','C','D': :'E','F','G','H': :'I','J','K','L': :'M':
If you actually have an array to begin with, try this, which gives you an array-of-arrays (see natatime() in List::MoreUtils; another approach might be to use splice):
>perl -wMstrict -le "use List::MoreUtils qw(natatime); use Data::Dumper; ;; my @data = ('A','B','C','D','E','F','G','H','I','J','K','L','M'); ;; my $it = natatime 4, @data; my @groups; while (my @group = $it->()) { push @groups, \@group; } print Dumper \@groups; " $VAR1 = [ [ 'A', 'B', 'C', 'D' ], [ 'E', 'F', 'G', 'H' ], [ 'I', 'J', 'K', 'L' ], [ 'M' ] ];
|
|---|