my $statement = "Insert into TABLE (name, date, type, federal, active) values( :name, :date, :type, :federal, :active ); $sth = $dbh->prepare( $statement ); foreach my $name ( keys %holidays ) { $sth->bind_param( ':name', $name ); $sth->bind_param( ':'.$_, $holidays->{$name}->{$_} ) foreach keys %{$holidays->{$name}}; $sth->execute(); # check errors here too }