sub getTop25{ my $dbh = DBI->connect('DBI:ODBC:cdratelistingservice','$db','$psswd'); # ODBC connect print "Error opening database: $DBI::errstr\n" and exit unless $dbh->ping; my $connected = $dbh->ping; $dbh->{FetchHashKeyName}='NAME_lc'; my @fields = ( "30_day", "60_day", "90_day", "180_day", "270_day", "1_year", "18_month", "2_year", "3_year", "4_year", "5_year", "variable_1", "variable_2", "variable_3" ); for my $i (0..$#fields) { %complex = %{ merge( \%complex, $dbh->selectall_hashref( "Select TOP 25 $fields[$i], key from cdrates c, main m WHERE r.key = m.key and m.valid = '$date' ORDER BY $fields[$i] DESC", "key" ) ) }; } print "\n\t",scalar keys %complex," RECORDS Found\n"; } sub GetStationNumbers{ my $dbh = DBI->connect('DBI:ODBC:poop'); # ODBC connect print "Error opening database: $DBI::errstr\n" and exit unless $dbh->ping; my $connected = $dbh->ping; $dbh->{FetchHashKeyName}='NAME_uc'; foreach my $key (sort keys %complex) { %complex = %{ merge( \%complex, $dbh->selectall_hashref( "SELECT station_number FROM inst where key = '$key'", # $key? "key" ) ) }; } $HoH_ref = \%complex; # $HoH_ref is a global? return scalar keys %complex; }