NAME

Iterator::Array::Jagged - Iterate through multiple jagged arrays

SYNOPSIS

use Iterator::Array::Jagged;

# Build up a set of data:
my @data = ();
for my $var ( 1...3 )
{
	my @set = ();
	for my $val ( 1...2 )
	{
		push @set, "var_$var=val_$val";
	}# end for()
	push @data, \@set;
}# end for()

my $iterator = Iterator::Array::Jagged->new( data => \@data );
while( my @set = $iterator->next )
{
	print "Next set: '" . join("&", @set) . "'\n";
}# end while()

The above code prints the following:

Next set: 'var1=val1&var2=val1&var3=val1'
Next set: 'var1=val2&var2=val1&var3=val1'
Next set: 'var1=val1&var2=val2&var3=val1'
Next set: 'var1=val2&var2=val2&var3=val1'
Next set: 'var1=val1&var2=val1&var3=val2'
Next set: 'var1=val2&var2=val1&var3=val2'
Next set: 'var1=val1&var2=val2&var3=val2'
Next set: 'var1=val2&var2=val2&var3=val2'

DESCRIPTION

Iterator::Array::Jagged can permute through sets of "jagged" arrays - arrays of varying lengths.

Iterator::Array::Jagged works much like the odometer in an automobile. Except that each set of "numbers" can have any kind of data you want, and each set can contain 1 or more elements.

METHODS

new( %args )

Constructor. %args should included the element data which contains the arrayref of arrayrefs that you wish to iterate through.

next( )

Returns an array representing the next iteration of the permutation of your data set. See the synopsis for an example.

BUGS

It's possible that some bugs have found their way into this release.

Use RT http://rt.cpan.org/NoAuth/Bugs.html?Dist=Iterator-Array-Jagged to submit bug reports.

AUTHOR

John Drago mailto:jdrago_999@yahoo.com

COPYRIGHT AND LICENSE

Copyright 2007 John Drago, All rights reserved.

This software is free software. It may be used and distributed under the same terms as Perl itself.