sub insert_hash { my $table = shift; my $ref = shift; # Sort fields so we can cache the handle effectively my @fields = sort keys %$ref; my @values = @{$ref}{@fields}; my $sql = "insert into $table (" . join(",", @fields). ") values (". join(",", ("?") x @fields).")"; my $sth = $dbh->prepare_cached($sql); $sth->execute(@values); }