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 | |
In reply to Re: setting oracle home globally through perl
by blue_cowdawg
in thread setting oracle home globally through perl
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |