Gentoo Spaceship I put on my robe and wizard hat...
Code Listing: Alfred_Botsnack.pm
package Alfred_Botsnack;

use strict;
use warnings;

# Globals
my $name = __PACKAGE__;
my %functions;
my %variables;

# Public methods
sub new {
  %functions = %{$_[0]};
  %variables = %{$_[1]};
  my $self = {};
  bless($self);
  return $self;
}

sub destroy {
  &{$functions{'log'}}('debug', 'destroying ' . $name);
  undef %functions;
  undef %variables;
  return 1;
}

sub irc_public {
  my ($kernel, $heap, $nick, $chan, $msg) = @_;
  my ($nickname, $username, $hostname) = ($nick =~ /^([^!]+)![~]?([^@]+)@(.*)$/);
  my $mynick = $variables{'global'}{'nick'};

  if ($msg =~ /^\s*(?:$mynick[:;,]?\s*)botsnack/i) {
    &{$functions{'log'}}('info', $name . ': ' . $nickname . ' gave me a snack');
    my @responses = (
      'beams',
      'gives ' . $nickname . ' a kiss',
      'smiles',
      'does a happy dance',
      'shakes it around the room!'
    );
    $heap->{irc}->yield('ctcp', $chan, 'ACTION', $responses[(int(rand(@responses))-1)]);
  }
}

1;