perlquestion
neversaint
Dear Masters,<br>
Is there a quick way to transform a HoA into AoH like this,
from:
<code>
my $HoA = {
flintstones => [ "fred", "barney" ],
jetsons => [ "george", "jane"],
};
</code>
Into:
<code>
# Desired result:
my $AoH = [
{
flinstones => "fred",
jetsons => "george"
},
{
flinstones => "fred",
jetsons => "jane"
},
{
flinstones => "barney",
jetsons => "george"
},
{
flinstones => "barney",
jetsons => "jane"
},
];
</code>
The size of the hash and array in HoA input maybe <b>varying</b>.
<br><br>
<b>Update</b>: Correction made on the correct data structure of the desired results, thanks to [pg] comments.<br><br>
<b>Update 2</b>: The actual HoA in my production code looks like this:
<code>
my $HoA = {
'1,2,flintstones' => [ "fred-1 foo-2", "barney-1 bar-2" ],
'2,3,jetsons' => [ "george-1 foo-2", "jane-1 bar-2"],
};
</code>
<b>Update 3</b>:Additional examples:
<READMORE>
With array of only one element
<code>
my $HoA3 = {
'flintstones' => [ "fred" ],
'jetsons' => [ "george"],
};
my $ans3= [
{
'flintstones' => 'fred',
'jetsons' => 'george'
}
];
</code>
With array of differing size:
<code>
my $HoA4 = {
'flintstones' => [ "fred" ],
'jetsons' => [ "george","jane"],
};
my $ans4 = [
{
'flintstones' => 'fred',
'jetsons' => 'george'
},
{
'flintstones' => 'fred',
'jetsons' => 'jane'
}
];
</code>
</READMORE>
<br><br>
<div class="pmsig"><div class="pmsig-476719">
---<br>
<i>neversaint and everlastingly indebted.......</i><br>
</div></div>