in reply to DBI and two arrays question!

First - use strict; - you will have a million issues if you don't. Secondly, PASS THINGS IN! You're using global variables. This is highly unmaintainable code.

If I understand your question right, you might be passing @fields in to Write_leads(). Ok ... that's not a problem.

sub Write_leads { my ($fields, $table, $list) = @_; my $parms = join (',', ('?') x @$fields); my $sth = $dbh->prepare_cached("INSERT INTO $table VALUES ($parms) +") || die $dbh->Errstr; foreach my $href (@$list) { $sth->execute(@{$href}{@$fields}) || die $dbh->Errstr; } $sth->finish; }
That not only will run under strict, but will catch DB errors you might have (for example, your tablename which is a variable might be wrong ...)

------
We are the carpenters and bricklayers of the Information Age.

Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.