NAME
Array::Group - Convert an array into array of arrayrefs of uniform size N.
SYNOPSIS
use Array::Group qw( :all );
@sample = ( 1 .. 10 );
$rowsize = 3;
ngroup $rowsize => \@sample ;
# yields
(
[ 1, 2, 3 ],
[ 4, 5, 6 ],
[ 7, 8, 9 ],
[ 10 ]
);
dissect $rowsize => \@sample ;
# yields
(
[ 1, 5, 9 ],
[ 2, 6, 10 ],
[ 3, 7 ],
[ 4, 8 ]
);
DESCRIPTION
The ngroup
method reformats a list into a list of arrayrefs. It is often used for formatting data into HTML tables, amongst other things.
dissect()
returns a list of lists where the first element of each sublist will be one of the first elements of the source list, and the last element will be one of the last. This behaviour is much more useful when the input list is sorted.
The key difference between the two methods is that dissect()
takes elements from the start of the list provided and pushes them onto each of the subarrays sequentially, rather than simply dividing the list into discrete chunks.
Both methods can be called as either functions or class methods (to ensure compatibility with previous releases), and the array to be reformed can be passed as a reference.
AUTHOR
The ongoing saga between princepawn, davorg and kilinrax over who did when in terms of getting this out is rather long-winded. They have their side of the story and I have mine. As is usual, it is princepawn versus some other majority. But what more could you expect from the black sheep of the Perl community?
One thing is for certain there is a bug in Array::Reform and two months have passed and the author has done nothing about my RT bug patch submitted 1/21/06: http://rt.cpan.org/Public/Bug/Display.html?id=17201
Not to mention that I held the Array::Reform namespace and when I turned it overto him, he did not even acknowledge this.
The test suite for HTML::Element::Library depends on this functionality and since I have people complaining about the wacky errors coming out of kilinrax's version of this module, and since he does not respond to emails, it is clear it is time to drop any reliance on his module.
So, I wont say who the author is of what... this is free software anyway.