The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Data::Hash::Flatten - isomorphic denormalization of nested HoH into AoH

SYNOPSIS

use Data::Hash::Flatten;

my $a = { bill => { '5/27/96' => { 'a.dat' => 1, 'b.txt' => 2, 'c.lsp' => 3 } },
          jimm => { '6/22/98' => { 'x.prl' => 9, 'y.pyt' => 8, 'z.tcl' => 7 } } } ;


my @a = Data::Hash::Flatten->this($a, [qw(name date file)]);

use Data::Dumper;
print Dumper(\@a);

$VAR1 = [
        {
          'hits' => 7,
          'date' => '6/22/98',
          'name' => 'jimm',
          'file' => 'z.tcl'
        },
        {
          'hits' => 8,
          'date' => '6/22/98',
          'name' => 'jimm',
          'file' => 'y.pyt'
        },
        {
          'hits' => 9,
          'date' => '6/22/98',
          'name' => 'jimm',
          'file' => 'x.prl'
        },
        {
          'hits' => 3,
          'date' => '5/27/96',
          'name' => 'bill',
          'file' => 'c.lsp'
        },
        {
          'hits' => 2,
          'date' => '5/27/96',
          'name' => 'bill',
          'file' => 'b.txt'
        },
        {
          'hits' => 1,
          'date' => '5/27/96',
          'name' => 'bill',
          'file' => 'a.dat'
        }
      ];

DESCRIPTION

Oftentimes, for searchability, one needs to denormalize a HoH (hash of hash of hash of ...) into an AoH (array of hash). The answer by George_Sherston in this node gives an perfect example of how and why:

http://perlmonks.org/index.pl?node_id=177346

Hence this module.

EXPORT

None by default.

AUTHOR

T. M. Brannon, <tbone@cpan.org>

SEE ALSO

"Data Munging with Perl" by Dave Cross