use DBI; my $dbh; my @DSNs = [ { DSN='blah1', UID='user1', PWD='password1' }, { DSN='blah2', UID='user2', PWD='password2' }, ]; =DBI->connect("dbi:Oracle:host=host1.my.do.main;sid=MYDB","me","secret"); my @DSNs = [ 'blah1', 'blah2', 'blah3'); for my $hr (@DSNs) { $dbh = DBI->connect($$hr{DSN}, $$hr{UID}, $$hr{PWD}); last unless defined $dbh; }