#!/usr/bin/perl # Coin.pm package Coin; use strict; use warnings; my @coin_IRC = ( "\x02\x0300,01H\x03\x02", "\x02\x0301,00T\x03\x02", "\x02\x0301,04X\x03\x02" ); sub flip # How many times do we flip this coin? { # $_[0] Is the number of times we flip the coin. my ($heads, $tails, $numFlips, @results) = (0, 0, int(shift), ()); $numFlips = 1 if $numFlips < 1; while ($numFlips) { my $seed = (0, 1)[rand 2]; push(@results, $coin_IRC[$seed]); if ($seed) { $tails++; } else { $heads++; } $numFlips--; } return ("[ @results ]: $heads Heads, $tails Tails"); } sub rig # Rig coins to your hearts content! { # @_ is the list of coin flip riggings. my ($heads, $tails, @results) = (0, 0, ()); foreach my $seed (@_) { if (lc($seed) eq lc("H")) { $heads++; push(@results, $coin_IRC[0]); } elsif (lc($seed) eq lc("T")) { $tails++; push(@results, $coin_IRC[1]); } else { push(@results, $coin_IRC[2]); } } return ("[ @results ]: $heads Heads, $tails Tails"); } 1