foreach my $key ( keys %hash ) {
while ( my ( $subkey, $value ) = each %{ $hash{$key} } ) {
$hash{ $subkey }{ $key } = $value;
}
delete $hash{ $key };
}
####
#!/usr/bin/perl
use strict;
use warnings;
use feature qw/ say /;
use Data::Dumper;
my %hash;
$hash{'keyA'}{'keyB'} = '1234';
$hash{'keyC'}{'keyB'} = '5678';
say Dumper \%hash;
foreach my $key ( keys %hash ) {
while ( my ( $subkey, $value ) = each %{ $hash{$key} } ) {
$hash{ $subkey }{ $key } = $value;
}
delete $hash{ $key };
}
say Dumper \%hash;
__END__
####
$VAR1 = {
'keyA' => {
'keyB' => '1234'
},
'keyC' => {
'keyB' => '5678'
}
};
$VAR1 = {
'keyB' => {
'keyC' => '5678',
'keyA' => '1234'
}
};