The following equipment is best for an enjoyable round of CPAN Drinking:

4 or more Perl Hackers.

One official. This person:

- Validates the module names against the master list
- Keeps track of the score
- Keeps track of whose turn it is
- Keeps track of the direction of play
- Keeps track of time intervals
- Keeps track of what valid modules have been named
- Keeps track of how many cans of beer each hacker drinks

They may or may not be a Perl Hacker and they may or may not drink beer.

Many cans of beer. (Number of cans is some coefficient of Number of Hackers times Knowledge of CPAN times Body Mass). Beer drinking hackers will instinctively know this number.

Start by having all hackers form some type of polygonal shape. A circle will do fine.

Each hacker opens a new can of beer.

The hacker with the most modules on CPAN starts the play by naming a CPAN module.

The official will validate that the module exists. Names given must be those of modules, notmodule distributions. If you don't know the difference you really shouldn't be playing this game.

If the module name is valid then play proceeds clockwise to the person (N - 1) number of positions away, where N is the number of nodes in the module name. The hacker receives (N - 2) points.

For instance if the hacker says:

Bundle::Business::Shipping::DataTools

then play would go 3 hackers to the left and they would receive 2 points. If they said:

Acme

then that hacker would have to go again and would receive -2 points. The reason it is -2 instead of -1 is described in Rule #10.

If the hacker's guess is invalid, they must drink and then give another answer. 3 wrong answers in one turn retires that hacker from the game and play proceeds to the adjacent hacker. Every wrong answer receives (1 - N) points.

A valid module name may be used only once. A reused name is considered invalid as in Rule #6, except the hacker receives (0 - N) points.

A hacker has up to 2 minutes to give a valid answer. In addition they must take a drink every 30 seconds. The official should call out the drinking intervals. Failure by the hacker to meet these requirements, retires them from the game.

The next hacker in turn must name a module whose first node begins with the same letter as the first letter in the last node of the previous valid module name. To be pragmatic (no pun intended) letters are considered case insensitive.

If a hacker names a module whose first and last nodes begin with the same letter, then the order of play is reversed and the hacker receives double the number of points.

A hacker is allowed to skip their turn and receive 0 points if they choose to drink an entire 12 ounce can of beer (within the 2 minute time limit). This is formally known as "taking a Randal". Each hacker may only take a Randal only once per game.

If the previous turn, for whatever reason, did not end with a valid answer, the next hacker in turn may name a module beginning with any letter they choose. All other rules apply.

After all but one hackers have retired, the remaining hacker must name one more module correctly (given the same rules as above). If they give a valid answer they receive 5 bonus points in addition to the points for that round.

After this round, the game is over and the official announces the scores.

This game was played by acme, autrijus, clkao, gugod, ingy, mugwump and obra on the east coast of Taiwan in April 2005. The game was brought from London by acme. ingy later added the points system and a few other rules.