The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!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;