One of the ways that I have solved this and issues like
it in the past has been to create a DBConfig.pm file
somewhere in the list of directories pointed to by @INC.
A sample sniglet looks like:
package DBConfig;
sub new {
$self = {
ORACLE_HOME => '/home/oracle',
SYBASE_HOME => '/home/sybase',
DBParms=>{
oracle => {
host => 'oraclehost',
user => 'user',
password => 'secret'
}
};
bless $self;
return $self;
}
<snip!>
To instantiate the information:
use DBConfig;
use DBI;
my $dbconf=new DBConfig;
#
# Some hand waving here...
my $dbh=DBI->connect(
$dbconf->{DBParms}->{oracle}->{user}
...etc....
You get the idea I hope.
Now if the database information changes OR you add a
supported database you just have to edit one place.
A very cute extension to this idea that I saw recently
was to read in the $ORACLE_HOME/network/admin/tnsnames.ora
file and parse it to get data for individual application
databases
Hope this helps.
| Peter L. Berghold | Brewer of Belgian Ales |
| Peter@Berghold.Net | www.berghold.net |
| Unix Professional |
|