Hi Monks!

I am working on this code that grabs lots of records from two big tables in two different databases, at some point I had to loop two connections to get the values back, the code is hanging and I think its on this part of my code, I might be missing something here that someone could see and tell me that it would run better and faster if it was done another way.
Can someone look over the code and try to tell me if Perl wise it would be a problem processing all the records based on this code?
Here is the code:

my $ibm; # Get today's date -1, no weekends::: #my $d_date = today() - 1; #$d_date-- while ($d_date->day_of_week == 0 or $d_date->day_of_week == + 6); # get the newly inserted data from today_records and calculate current + stuff using data from IBMDB::: my ($sql_net,$n_year, @new_date); my $db = "LocalServer"; my $user = $Mydb::Config::odbc_def->{ $db } { user }; my $pass = $Mydb::Config::odbc_def->{ $db } { pass }; my $dbh = DBI->connect("DBI:ODBC:$db",$user, $pass, {RaiseError => 1}) +; my $sql_last ="SELECT account_num, due_year, account_due_date, net FRO +M today_records WHERE type='OK'"; my $sth = $dbh->prepare($sql_last); $sth->execute() || die $sth->errstr; #$sth->finish; #Executes web DB #Going back to the IBMDB to process the rest of accounts from last yea +r:::: my $user = $Mydb::Config::odbc_def->{ $ibm }{ user }; my $pass = $Mydb::Config::odbc_def->{ $ibm }{ pass }; my $dbh = DBI->connect("DBI:ODBC:$ibm",$user, $pass) || print "Connect + fail: $!"; #New connection to update today_records with new data::: my $db = "LocalServer"; my $user = $Mydb::Config::odbc_def->{ $db } { user }; my $pass = $Mydb::Config::odbc_def->{ $db } { pass }; my $dbh_2 = DBI->connect("DBI:ODBC:$db",$user, $pass, {RaiseError => 1 +}); my $count=0; while (my $pointer = $sth->fetchrow_hashref){ my $account_num = $pointer->{'account_num'}; my $account_due_date = $pointer->{'account_due_date'}; my $net = $pointer->{'net'}; my $due_year = $pointer->{'due_year'}; #Format DATE and subtract 1 year from current year to get current ter +m here... if($account_due_date=~/(\d{1,4})-(\d{1,2})-(\d{2})(\s*.*)/g){ #new year $n_year = $year-1; #$n_year = "2006"; $account_due_date=$n_year."-".$2."-".$3; } #Format DATE if($due_year=~/(\d{1,4})-(\d{1,2})-(\d{2})(\s*.*)/g){ $due_year=$1; } #Get all accounts for current term::: my $sql_back="SELECT ABC1,ABC2,ABC3,ABC4,ABC5,ABC6, ABC7, ABC8 FROM TBIBM WHERE ABC2='$account_num' AND ABC6 = '$accou +nt_due_date' AND ABC5='$n_year'"; my $sth = $dbh->prepare($sql_back); $sth->execute() || die $sth->errstr; while (my $pointer = $sth->fetchrow_hashref){ $count++; $ABC1 = $pointer->{'ABC1'}; $ABC2 = $pointer->{'ABC2'}; $ABC3 = $pointer->{'ABC3'}; $ABC4 = $pointer->{'ABC4'}; $ABC5 = $pointer->{'ABC5'}; $ABC6 = $pointer->{'ABC6'}; $ABC7 = $pointer->{'ABC7'}; $ABC8 = $pointer->{'ABC8'}; #done getting all accounts , need to update web db once again w +ith new data! $sql_net="UPDATE today_records SET current_prem= CONVERT(money, '$ABC7') WHERE account_num='$ABC2' AND type='OK'"; my $sth = $dbh_2->prepare($sql_net); $sth->execute() || die $sth->errstr; } }

If any questions let me know!
Thanks a lot!!

In reply to Perl Code Efficiency Issue by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.