use Tie::IxHash;
my $columns = 50;
use Text::Wrap qw( wrap $columns );
require SDBM_File;
my %chat;
my %chatorder;
my @words = ();
my $chat = "list.dbm"; # location of database
my $imagedir = "http://sulfericacid.perlmonk.org/chat/images"; # location of image directory (emoticons)
tie %chat, "Tie::IxHash";
tie %chatorder, "Tie::IxHash";
tie (%chat, 'SDBM_File', $chat, O_CREAT | O_RDWR, 0644)
or die "Couldn’t tie SDBM file '$chat' $!; aborting";;
foreach (reverse keys (%chatorder)) {
my ( $name, $message, $time ) = split /::/, $chatorder{$_};
$name =~ s/$_/****/g for @words; # say goodbye to swear words
$message =~ s/$_/****/g for @words; # say goodbye to swear words
$message =~ s/:\)/\/g; # happy emoticon
$message =~ s/:\(/\/g; # sad emoticon
$message =~ s/:p/\/g; # tongue emoticon
$message =~ s/:P/\/g; # tongue1 emoticon
$message =~ s/:o/\/g; # oh emoticon
$message = wrap('', '', $message);
print Tr(td({-width=>'700'},"<$name @ $time>$message")),
}