A hash in Perl is never sorted and doesn't have a defined sort order. If you want to impose an order on the sequence of keys in JSON output, you will need to generate the JSON output yourself. But in most cases, the order simply is not important or required.
If you want to use the JSON to create an SQL statement to insert the data into a database again, you should list the columns to insert explicitly. For example:
my @columns = qw(DD address ); # and the other columns, omitted for br
+evity
my @payload = @{ $data }{ @columns };
my $placeholders = join ",", ('?' x @columns);
my $columns_str = join ",", @columns;
my $sql = "insert into mytable ($columns_str) values ($placeholders);"
+;
my $sth = $dbh->prepare( $sql );
$sth->execute( @payload ); # this assumes you use RaiseError => 1, whi
+ch you always should
|