in reply to Parsing Arrays II

It looks like you're basically trying to compare two sets; one the set of sites split from $sites, and the other the set of new site numbers fetched from the database. I think the simplest way to compare sets is to use a hash or two. This example checks whether a new site number is in the set of sites:
my @sites = split ' ', $sites; my %sites; for (@sites) { # there are shorter ways to do this step $sites{$_} = 1; # but I'm going for clarity in this example } while ($sth4->fetchrow()) { if (exists $sites{$newSiteNumber}) { print "modify $newSiteNumber\n"; } else { print "delete $newSiteNumber\n"; } }
I hope I'm understanding your question, and that this code sample is helpful.

BTW, what is the undef in the call to bind_columns() for?