#!perl -w use strict; use DBI; use Benchmark qw(timethese cmpthese timeit countit timestr); my %conns = ( DBD_ORACLE => sub { doconnect("dbi:Oracle:URLWINLT"); }, DBD_ODBC_ORACLE => sub { doconnect("dbi:ODBC:PERL_TEST_ORACLE"); }, DBD_ODBC_MSORACLE => sub { doconnect("dbi:ODBC:PERL_TEST_MSORACLE"); }, DBD_ODBC_SQLSERVER => sub { doconnect("dbi:ODBC:PERL_TEST_SQLSERVER"); }, DBD_ODBC_DB2 => sub { doconnect("dbi:ODBC:PERL_TEST_DB2"); }, DBD_ODBC_ACCESS => sub { doconnect("dbi:ODBC:PERL_TEST_ACCESS"); }, ); sub doconnect ($) { my $connstr = shift; my $dbh = DBI->connect($connstr, $ENV{DBI_USER}, $ENV{DBI_PASS}, { RaiseError => 1, PrintError => 1 } ) || die "Can't connect with $connstr: $DBI::errstr"; } timethese 100, \%conns; cmpthese 100, \%conns;