http://www.perlmonks.org?node_id=830512

ZlR has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks,

Most of the time i parse data results from various system commands, consolidate everything into One Big Hash and then build from it various things i need, mostly other system commands. Sometimes it gets a little messy, and right now i have this structure :

'host1' => { 'tgt' => { 'target_0011' => { '11C3' => '0C5C', '039F' => '14C4', '11D3' => '0C6C', '11F3' => '0C8C', '11B3' => '0C4C', '11E3' => '0C7C' } }, 'wwn' => [ '10000000c95ffff1', '10000000c96ffff2' ] },
Right now i only have one 'tgt' but it could change, so i end up doing :
foreach my $host (keys %rez) { foreach my $tgt ( keys %{ $rez{$host}{'tgt'} } ) { foreach my $dev ( keys %{ $rez{$host}{'tgt'}{$tgt} } ) { do something with $tgt, $dev and $rez{$host}{'tgt'}{$tgt}{$dev} }}}
Those 3 foreach, y'know, i don't like it :P
Is there a better way to do this ? Possibly something completely different ?

Thanks !