NAME Data::Random::Structure - Generate random data structures VERSION version 0.01 SYNOPSIS use Test::More; use Data::Random::Structure; use JSON::PP; my $g = Data::Random::Structure->new( max_depth => 2, max_elements => 5, ); my $ref = $g->generate(); diag explain $ref; my $json = JSON::PP->new; print $json->pretty->encode($ref); ok(1); done_testing(); OVERVIEW This is a library to create random Perl data structures, mostly as a means to create input for benchmarking and testing various serialization libraries. It uses grotty 'classic' Perl 5 OO mostly because I think having Moo as a dependency for a testing module is pretty gross. On the other hand, original flavor Perl OO is pretty gross. ATTRIBUTES max_depth The maximum depth to embed data structures max_elements The maximum number of elements (array items or hash key/value pairs) per data structure. METHODS new Constructor. May optionally pass: * max_depth * max_elements If not set, these default to 3 and 6 respectively. Throws an exception if the argument list is not a multiple of 2. generate Recursively generate a data structure using hashes and arrays. The data structure will not contain more than "max_depth" nested data structures. generate_scalar Randomly generates one of the following scalar values: * float * integer (between 0 and 999_999) * string (see Data::Random "rand_chars") * bool (value based 50/50 coin toss) generate_array Generate an arrayref and populate it with no more than "max_element" items. May be empty. generate_hash Generate a hashref and populate it with no more than "max_element" key/value pairs. May be empty. AUTHOR Mark Allen COPYRIGHT AND LICENSE This software is copyright (c) 2014 by Mark Allen. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.