in reply to Using a HASH to store a DBI connection

connect needs three arguments: connection string, user name, and password (at least that's how I understand the documentation). You're giving it only one argument.

If you want to store the username and password in the hash, too, use a hash of arrays:

my %db_conn = ( a_manager => [ 'DBI:Oracle:host=hostname1;sid=ABCDB01;port=1300', +'a_manager', 'a_manager' ], b_manager => [ 'DBI:Oracle:host=hostname1;sid=ABCDB01;port=1300', +'b_manager', 'b_manager' ], c_manager => [ 'DBI:Oracle:host=hostname1;sid=ABCDB01;port=1300', +'c_manager', 'c_manager' ], d_manager => [ 'DBI:Oracle:host=hostname1;sid=CBADB01;port=1300', +'d_manager', 'd_manager' ], );

And dereference the value in the connection call:

my $dbh = DBI->connect(@$data_source) or ...

Update: Added the example.

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,