push @{$outp}, sprintf '"%s"=>"%s"', @$_ foreach @{&{ sub ($) { my $_=["",[]]; push @{$_->[1]},\@{$_->[0]} while @{$_->[0]=[each $_[0]]}; $_->[1] } } (\%ahash)}, @{$v}; #### push @{$outp}, sprintf '"%s"=>"%s"', @$_ foreach @{&{ sub ($) { my $_=["",[]]; push @{$_->[1]}, \@{$_->[0]} while @{$_->[0]=[each $_[0]]}; $_->[1] } } (\%ahash)}, @{$v}; #### push @{$outp}, ( map { sprintf '"%s"=>"%s"', $_, $ahash{$_}; } keys $ahash, ), @{$v};