in reply to Re: Using Data::Compare recursively to better identity differences between hashes
in thread Using Data::Compare recursively to better identity differences between hashes

I am unsure how to compare arrays of hashes ... -- Lady_Aleena

The comment "Data::Compare does have the facility to compare array references" does not apply with respect to the above doubt. With combination of ...

# I have not figured out this part yet. # elsif (ref($old) eq 'ARRAY' && ref($new) eq 'ARRAY') { # }

... it seems you are unsure about comparison of array reference of hash references. (Loose language sinks ships. ;-) Regardless, you would need to loop over array (reference) elements near the beginning of the sub ...

sub deep_data_compare { my ( $old, $new ) = @_; if (ref $old eq 'ARRAY' && ref $new eq 'ARRAY') { # Handle the case of uneven number of elements in # each array reference as you see fit. Here assumption # is that both references have the same number of # elements. for my $ix ( 0 .. $#{ $old } ) { deep_data_compare( map $_->[ $ix ], $old, $new ) } } ... }

Replies are listed 'Best First'.
Re^3: Using Data::Compare recursively to better identity differences between hashes
by perlron (Pilgrim) on Oct 22, 2014 at 09:04 UTC
    i just saw a tweet that said foreach \%hash ( @AoH ) { ... } is coming to perl5.22 (available in bleed now).