use strict; use warnings; use DBI; #replace these with the correct connect strings, of course my $usage_db = DBI->connect('dbi:ODBC:usage','',''); my $detail_db = DBI->connect('dbi:ODBC:detail','',''); my $usage_st = $usage_db->prepare(q' SELECT uid,description,err_code FROM errors WHERE err_code = ? '); my $detail_st = $detail_db->prepare(q' SELECT * FROM error_details WHERE uid = ? '); #- CORE -# my $fatals = get_general('FATAL'); # get all fatal errors; foreach my $record (@$fatals) { my $uid = shift @$record; my $detail = get_detail($uid); #output result and its detail print join('||',$uid, @$record, @$detail), "\n"; } #- END CORE -# # this sub finds all records with a given err_code sub get_general { my $code = shift; $usage_st->execute($code); my $res = $sth->fetchall_arrayref; return $res; } # this sub gets the details for a given uid sub get_detail { my $uid = shift; $detail_st->execute($uid); my $res = $sth->fetchall_arrayref; return $res; }