my $a = [qw{v1 v2}]; my %h = ( k1 => { k11 => $a, k12 => 'w00t!', }, k2 => { k21 => 'what?', k22 => $a, }, ); use Data::Dumper; #print Dumper(\%h); my $h2; $h2 = { 'k2' => { 'k21' => 'what?', 'k22' => [ 'v1', 'v2' ] }, 'k1' => { 'k11' => $h2->{'k2'}{'k22'}, 'k12' => 'w00t!' } }; print Dumper($h2);