#!/usr/bin/perl use strict; use warnings; use JSON; #use Hash::Merge::Simple qw(merge); my $json = JSON->new->utf8->space_before(0)->space_after(1)->indent(4)->canonical(1); my $new_json = {}; my $old_json = ''; while (defined(my $line = )) { $old_json .= $line; } $old_json = $json->decode($old_json); for my $key (keys %{$old_json}) { my $index = index($key, '.'); my $real_key = substr($key, 0, $index++); my $trad_key = substr($key, $index); $new_json->{$real_key}->{$trad_key} = $old_json->{$key} if $old_json->{$key}; } print $json->encode($new_json);