Ik weet niet zeker of het helpt, maar het volgende werkte voor mij:
Om lokaal verbinding te maken met tnsnames.ora (in $ORACLE_HOME/network/admin directory):
my $db = DBI->connect( "dbi:Oracle:mydatabase", "scott", "tiger" );
en om verbinding te maken zonder de tnsnames.ora te gebruiken:
my $db = DBI->connect("dbi:Oracle:host=$host;sid=$sid;port=1521",$user,$passwd)
|| die( $DBI::errstr . "\n" );
waarbij de $host, $sid vooraf moeten worden gedefinieerd.