Reviews by



MIME-Lite (3.01) ****

MIME::Lite is your universal friend for jotting together MIME-compliant messages when open FH, "/bin/mail |" doesn't hack it.

I've written several scripts using this package, ranging from file distribution from cron jobs to automatic newsletters from Confluence blog posts.

The latter is available from by the way.

Mail-IMAPTalk (1.02) ****

This module is a very powerful one, which does exactly what the name indicates; it talks IMAP!

What this means is that it is very close to the IMAP lingo and formats. Your best source for what the different commands use, are the IMAP RFCs.

You must judge my ratings in the context of how much you like IMAP or not.

I've written an 80% WAP mail browser in only 91 lines using this module, DateTime, MIME::Words, CGI::WML, and MIME::QuotedPrint.

HTML::TableExtract / HTML-TableExtract (1.07) ****

A must-have module for getting information out of any table-organized HTML page (you'll be surprised how many web pages this actually is true for).

It might be a little steep on the learning curve, but this is only due to it's powers, and the fact that extracting information out of nested tables is a daunting task.

Two small tips for getting your information:

1. Don't know where your table's at?

Construct the TableExtract without depth and count, and loop using:

foreach my $ts ($table->table_states) {

warn "DEBUG: Table found at ", join(',', $ts->coords) if $DEBUG>2;

2. Replace IMG tags with their ALT attribute:

Subclass TableExtract, overriding the start method:
package TableParser;

use base qw(HTML::TableExtract);

sub start {

my $self = shift;

if ($self->{_in_a_table} and $_[0] eq 'img') {

my %attrs = ref $_[1] ? %{$_[1]} : {};


} else {