#initial stuff #... build_hash($dbh, '', '', $href); sub build_hash { my ($dbh, $field_str, $where_str, $href) = @_; my $table_str = 'table_name'; do { my @fields = qw( f1 f2 f3 f4 f4 f6 f7 f8 f9 ); $field_str = join(', ', @fields); } unless $field_str; my $query = qq( select $field_str from $table_str ); $query .= qq( where $where_str ) if $where_str; my $sth = $dbh->prepare($query) or die "Could not prepare '$query'\n"; $sth->execute() or die "Could not execute '$query'\n"; my $ct = 0; while (my $tmp_href = $sth->fetchrow_hashref) { $ct++; $$href{$ct} = $tmp_href; } $sth->finish or die "Could not finish '$query'\n"; }