Yeah, I thought about that and completely agree with you - I was just reusing that ksh script someone else had written - I replaced that with:
sub dbConnect(){
my ($dbName) = @_;
LogStatus "Retrieving $dbName login info";
my ($dbUser, $dbPass) = get_db_login($dbName);
LogStatus "User for $dbName is $dbUser";
die "$0: Could not find password for $dbUser" unless(defined($dbPas
+s));
my $dbh = DBI->connect("dbi:DB2:$dbName", $dbUser, $dbPass, {AutoCo
+mmit=> 0, RaiseError => 1})
|| die "Can't connect to $database: $DBI::errstr";
LogStatus "Connected to $dbName as $dbUser";
return $dbh;
}
sub get_db_login {
my ($dbName) = @_;
my ($dbUser, $dbPass, $whoami);
chomp($whoami = `whoami`);
open(PASSWD,"/home/$whoami/.passwd") or die "~/.passwd does not ex
+ist";
while(<PASSWD>){
if($_=~/^$dbName\s+(\w+)\s+(\w+)/i){
$dbUser = $1;
$dbPass = $2;
}
}
close PASSWD;
return $dbUser, $dbPass;
}
Unfortunately, I am still getting the same behavior as I never see the result of:
LogStatus "User for $dbName is $dbUser";