============================================================================== Version 1.9 of Randomize ============================================================================== NAME Randomize - Perl extension for randomizing things. SYNOPSIS use Randomize; my $randomizer = Randomize->new(\@rules); print "There are ", $randomizer->permutations(), " different possible outcomes.\n"; while (1) { my $random_hash = $randomizer->generate(); } DESCRIPTION This packages takes a set of randomization rules in the form of an array reference, and creates random hashes on request based on the rules given. I know that doesn't make sense, so here's an example. my @randomizer_rules = [ {Field => 'Street', Values => [{Data => ['Preston', 'Hillcrest'], Weight => 1}, {Data => ['Coit'], Weight => 2}]}, {Field => 'Number', Values => [18100..18299]} }; my $randomizer = Randomize->new(\@randomizer_rules); while (1) my $hashref = $randomizer->generate(); } Each time through the loop, $hashref contains a reference to a hash. That hash contains two fields, "Street", and "Number". "Street" will be "Coit" about half the time, and evenly split between "Preston" and "Hillcrest" the rest of the time. "Number" is a number from 18100 to 18299. INSTALLATION perl Makefile.PL make make test make install Note that during "make test", I try to verify that Randomize is, indeed, generating random hashes. Occasionally, the results for a given "make test" may be a little skewed because of the vagaries of random number generation. So, if one of those test cases fails, just re-run "make test" and see if it happens again. AUTHOR Brand Hilton COPYRIGHT Copyright (c) 2001, Brand Hilton. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself. ============================================================================== CHANGES FROM VERSION 1.7 TO VERSION 1.9 Added permutations() method Fixed a bug that would cause problems if you used both varieties of Retry_If at the same time Documentation updates ============================================================================== AVAILABILITY Randomize is available on CPAN. ==============================================================================