Je ne sais pas si cela aide, mais ce qui suit a fonctionné pour moi :
POUR se connecter localement à l'aide de tnsnames.ora (dans le répertoire $ORACLE_HOME/network/admin) :
my $db = DBI->connect( "dbi:Oracle:mydatabase", "scott", "tiger" );
et pour se connecter sans utiliser tnsnames.ora :
my $db = DBI->connect("dbi:Oracle:host=$host;sid=$sid;port=1521",$user,$passwd)
|| die( $DBI::errstr . "\n" );
où $host, $sid doivent être définis au préalable.