$start = {
'lineitem' => {
'invoice' => 1
},
'market_x_branch' => {
'insurer' => 1
},
'invoice' => {
'lineitem' => 1
},
'insurer' => {
'market_x_branch' => 1
}
};
####
$end = [
[
'lineitem',
'invoice'
],
[
'market_x_branch',
'insurer'
]
];
####
foreach my $x (keys %$start)
{
next unless exists $start->{$x};
my @values = ($x, keys %{$start->{$x}});
push @$end, \@values;
delete $start->{$_} for @values;
}
####
$start = {
'lineitem' => {
'invoice' => 1
},
'invoice' => {
'lineitem' => 1,
'claim' => 1
},
'insurer' => {
'claim' => 1
},
'claim' => {
'invoice' => 1,
'insurer' => 1
}
};
$end = [
[
'invoice',
'claim',
'insurer',
'lineitem',
],
];