note
Hue-Bond
<blockquote><i>And that is, all DBI needs to know is the first two fields of the DSN. The first must match 'dbi' (+-case); the second must match a module "DBD::<2ndfield>" that is installed locally. What comes after that is none of its concern. It just gets passed through to the loaded DBD driver.</i></blockquote>
<p>A half-way alternative would be to specify the driver separated from the DBD-specific stuff. Then this:</p>
<blockquote><i><code>$dbh = DBI->connect("dbi:Informix:$database", $user, $pass, %attr);
$dbh = DBI->connect("DBI:Unify:dbname[;options]" [, user [, auth [, attr]]]);
$dbh = DBI->connect("dbi:Oracle:host=$host;sid=$sid", $user, $passwd);
</code></i></blockquote>
<p>would become this:</p>
<c>$dbh = DBI->connect(Informix => $database, $user, $pass, %attr);
$dbh = DBI->connect(Unify => "dbname[;options]", $user, $pass, %attr);
$dbh = DBI->connect(Oracle => "host=$host;sid=$sid", $user, $pass, %attr);
...</c>
<p>Please note that this is not an API change request/suggestion ;).</p>
<div class="pmsig"><div class="pmsig-489671">
<p>-- <br />
David Serrano<br>
<small><i>(Please treat my english text just like Perl code, i.e. feel free to notify me of any syntax, grammar, style and/or spelling errors. Thank you!).</i></small></p>
</div></div>
835894
837354