perlquestion
monarch
Hi esteemed PerlMonks!
<p>I've enjoyed assisting, where I can, others with very similar queries to the one I'm asking here, but I'm having a mental block and can't seem to think of a way to do the following.
<p>I have a hash:<code>
%properties = ( if_mac => { 0 => { value => '00:11:1A:F2:E1:92',
fixed => 0
},
1 => { value => '00:11:1A:F2:E1:93',
fixed => 0
},
},
if_ip => { 0 => { value => '132.181.30.3',
fixed => 0
},
1 => { value => '132.181.30.4',
fixed => 0
},
}
);</code>
<p>I want to convert it into a flat array of just the properties:<code>
my @values = ( [ 'if_mac', 0, '00:11:1A:F2:E1:92' ],
[ 'if_mac', 1, '00:11:1A:F2:E1:93' ],
[ 'if_ip', 0, '132.181.30.3' ],
[ 'if_ip', 1, '132.181.30.4' ]
);
</code>
<p>I could loop over the hash and build up the array, but I would like to be more clever and use the <code>map { }</code> function. The problem is that I am trying to build an array of arrays with three columns in it. I solved a similar problem in another perlmonk question ([id://473348] in reply to [id://473342]) by creating an anonymous array reference in a sub-<code>map</code> function call.. I wonder if something similar could be done here?
<p>Any ideas?</p>
<p><i>Update</i>: changed curly braces to parenthesis on suggestion by [davidrw]. Problem solved neatly by [Transient].