in reply to DBD Oracle doesn't login?

Perl is absolutely right in claiming that $username and $passwd are only used once. In your connect string, you use the q{} operator, which does not interpolate variables, so you are passing $username as username and $password as password, instead of the contents of those variables. Use qq{} instead:
$dbh = DBI->connect('dbi:Oracle:', qq{$username/$passwd@(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST= $ips[$icnt])(PORT=1521)) (CONNECT_DATA=(SID=$site)))}, "") || die "Can't connect vi SQLNET to +Database: $! $site";
This way, you're even connecting to the correct host as well :).

CU
Robartes-