NAME
    Random::Set - Class for random set generation.

SYNOPSIS
     use Random::Set;

     my $obj = Random::Set->new(%params);
     my $random = $obj->get;

METHODS
  "new"
     my $obj = Random::Set->new(%params);

    Constructor.

    Returns instance of object.

    *       "precision"

             Precision.
             Default value is 100.

    *       "set"

             Set definition.
             Set is array of arrays with pairs of probability and value.
             Default value is [].
             It is required.
             Sumary of probabilities must be 1.

  "get"
     my $random = $obj->get;

    Get random value from set.

    Returns value from set.

ERRORS
     new():
             Bad set sum. Must be 1.
             From Class::Utils::set_params():
                     Unknown parameter '%s'.

EXAMPLE1
     use strict;
     use warnings;

     use Random::Set;

     # Object.
     my $obj = Random::Set->new(
             'set' => [
                     [0.5, 'foo'],
                     [0.5, 'bar'],
             ],
     );

     # Get random data.
     my $random = $obj->get;

     # Print out.
     print $random."\n";

     # Output like:
     # foo|bar

EXAMPLE2
     use strict;
     use warnings;

     use Random::Set;

     # Object.
     my $obj = Random::Set->new(
             'set' => [
                     [0.1, 'foo'],
                     [0.9, 'bar'],
             ],
     );

     # Get random data.
     my $random = $obj->get;

     # Print out.
     print $random."\n";

     # Output like:
     # foo (10%)|bar (90%)

DEPENDENCIES
    Class::Utils, Error::Pure.

SEE ALSO
    Random::Day
        Class for random day generation.

REPOSITORY
    <https://github.com/michal-josef-spacek/Random-Set>

AUTHOR
    Michal Josef Špaček <mailto:skim@cpan.org>

    <http://skim.cz>

LICENSE AND COPYRIGHT
    © Michal Josef Špaček 2013-2023

    BSD 2-Clause License

VERSION
    0.08

