Games::Dice simulates die rolls. It uses a function-oriented (not
object-oriented) interface. No functions are exported by default. At
present, there are two functions which are exportable: `roll` and
`roll_array`. The latter is used internally by `roll`, but can also be
exported by itself.
The number and type of dice to roll is given in a style which should be
familiar to players of popular role-playing games: *a*d*b*[+-*/b]*c*.
*a* is optional and defaults to 1; it gives the number of dice to roll.
*b* indicates the number of sides to each die; the most common,
cube-shaped die is thus a d6. % can be used instead of 100 for *b*;
hence, rolling 2d% and 2d100 is equivalent. If F is used for *b* fudge
dice are used, which either results in -1, 0 or 1. `roll` simulates *a*
rolls of *b*-sided dice and adds together the results. The optional end,
consisting of one of +-*/b and a number *c*, can modify the sum of the
individual dice. +-*/ are similar in that they take the sum of the rolls
and add or subtract *c*, or multiply or divide the sum by *c*. (x can
also be used instead of *.) Hence, 1d6+2 gives a number in the range
3..8, and 2d4*10 gives a number in the range 20..80. (Using / truncates
the result to an int after dividing.) Using b in this slot is a little
different: it’s short for best and indicates roll a number of dice,
but add together only the best few. For example, 5d6b3 rolls five six-
sided dice and adds together the three best rolls. This is sometimes
used, for example, in role-playing to give higher averages.

Generally, `roll` probably provides the nicer interface, since it does
the adding up itself. However, in some situations one may wish to
process the individual rolls (for example, I am told that in the game
Feng Shui, the number of dice to be rolled cannot be determined in
advance but depends on whether any 6s were rolled); in such a case, one
can use `roll_array` to return an array of values, which can then be
examined or processed in an application-dependent manner.

This having been said, comments and additions (especially if accompanied
by code!) to Games::Dice are welcome. So, using the above example, if
anyone wishes to contribute a function along the lines of roll_feng_shui
to become part of Games::Dice (or to support any other style of die
rolling), you can contribute it to the author’s address, listed below.