Hello Folks;

I see an earlier post about sluggish code - I am not really sure what I am 
doing, so I let me post my entire script here.

++++++++++++++++++++++++++++++++++++++++++++++++++

#!/usr/bin/perl

#use strict;
use DBI;
use XML::XPath;
use XML::XPath::XMLParser;

# Set the input dir where all of the XML files live
my $input_dir = ".";

# Begin reading the directory
opendir(DIR, $input_dir) || die "sorry shit the bed $input_dir: $!";

# Read them into an array
my @files_in_dir = grep { /xml/ } readdir(DIR);
closedir DIR;

# connect to database and create parser object
my $dbh = DBI->connect ("DBI:mysql:can_us_ratecenters",
                           "xxxx", "xxxxxx",
                           { RaiseError => 1, PrintError => 0});

# clear the database - new DIDs coming in
$dbh->do ('TRUNCATE TABLE rc_city_town');

#Now the fun begins - read each file and put it in the database
foreach my $f (@files_in_dir) {
        open IN, "<$f";

my $xp = XML::XPath->new (filename => "./$f");
my $nodelist = $xp->find ("//row");
foreach my $row ($nodelist->get_nodelist ())
   {
       $dbh->do (
           "INSERT IGNORE INTO rc_city_town (state_prov, city_town, did_number) 
VALUES (?,?,?)",
               undef,
               $row->find ("state")->string_value (),
               $row->find ("ratecenter")->string_value (),
               $row->find ("number")->string_value (),
           );
   }
        close IN;
}
$dbh->disconnect ();


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

As far as I can tell, the script works without any compilation errors. 

I ran it with the Perl debugger ( perl -d scriptname.pl) and stepped through it.

It seems to bottleneck at the first foreach{} loop - probably not the best use 
case.

To get this script to stop, I have to kill the process - it has been running 
for  over an hour - it populates the database, but I want to do this right.

However, I am sure there is someone smarter than I and can look at this and say 
"..oh, there's your problem right there..."

However, I am not a Perl guru. So, I am relying on some assistance from the 
crowd.

If you have any questions, please feel free. I will take any assistance I can 
get.

Thanks  - Glen


-- 
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to