For some reason, my array
@databaseis being set to two
undef values after it is used in an innocent-looking
for loop... can someone remedy this? I using Perl 5.8.0.
#!/usr/bin/perl
use strict;
use Data::Dumper;
use DBIx::Connect;
use DBIx::Recordset;
my @database = (qw(horse1 SYNDB));
my $r = '/data/tbone/maldunn2';
my %tbl;
$DBIx::Recordset::Debug = 2;
*DBIx::Recordset::LOG = \*STDERR;
sub tbl_srch {
my ($fname, $lname) = @_;
for my $db (@database) {
while ( my ($table, $fields) = each %tbl ) {
DBIx::Recordset->Search
({
'!DataSource' => DBIx::Connect->to($db),
$fields->[2] => $fname,
$fields->[3] => $lname
});
}
}
}
sub load_tbls {
my $database = shift;
open T, "$r/$database.tblmap-names-email-address";
while ( <T>) {
my ($table, @field) = split;
$tbl{$table} = \@field;
}
}
warn Dumper(\@database);
load_tbls $_ for (@database);
die Dumper(\@database);
tbl_srch 'John', 'Smith';
output
perl sql.pl
$VAR1 = [
'horse1',
'SYNDB'
];
$VAR1 = [
undef,
undef
];
Carter's compass: I know I'm on the right track when by deleting something, I'm adding functionality.