Here's two snippets of code to get you started, as well. I've been working on this very issue recently! The first connects using DBI::ADO, but works the same for DBI::ODBC with one caveat, as noted below. Also, I'm doing something fairly complex, with making a array of hashs holding the data. The docs for both modules can tell you how to get simpler forms of the data, if you wish:

use strict;
use DBI;
$| =1;
my @sites;
#This below can be changed to 'dbi:ODBC:<name>'
#provided you have DBI::ODBC installed
#I'm testing both, and have both installed
#They "feel" fairly interchangable
my $dbh = DBI->connect('dbi:ADO:Name', undef, undef, {PrintError => 1,+ RaiseError => 1});
#The two lines below are for use with DBI::ODBC
#with BLOB, aka MEMO fields with large amounts of data.
#Look in the docs for the modules for more on them
#$dbh->{LongReadLen} = 65534;
#$dbh->{LongTruncOk} = 1;
my $sth = $dbh->prepare('SELECT * FROM tbldata');
$sth->execute;
#dump_results is very good for testing,
#and even for simple apps -- you don't need to
#loop the results, just print out $results
#my $results = DBI::dump_results($sth);
#One of the nice things about DBI is the wide
#variety in gives you in retrieving data
while (my $results = $sth->fetchrow_hashref) {
push @sites, $results;
}