The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use DBI;

# Fill in the following variables

my $DSN   = 'DBI:mysql:test';
my $USER  = '';
my $PASS  = '';
my $TABLE = '';

# You probably don't need to change this

my $DUMMY = 'SELECT * FROM %s WHERE 1 = 0';

{
    my $dbh = DBI->connect( $DSN, $USER, $PASS )
                    || die "Cannot connect: $DBI::errstr";
    $dbh->{RaiseError} = 1;
    my $sql = sprintf( $DUMMY, $TABLE );
    print "Preparing [$sql]\n";
    my $sth = $dbh->prepare( $sql );
    $sth->execute;
    my @names = @{ $sth->{NAME} };
    my @types = @{ $sth->{TYPE} };
    $sth->finish;
    $dbh->disconnect;
    printf( "%-15s %s\n", 'NAME', 'SQL TYPE' );
    print "=" x 30, "\n";
    for ( my $i = 0; $i < scalar @names; $i++ ) {
        printf( "%-15s %s\n", $names[ $i ], $types[ $i ] );
    }
}