in reply to comparing values in two hashes

Please see if this subroutine makes sense for your problem:
sub foo_non_subsets { my ($h1, $h2) = @_; my %r; for my $c (List::Compare->new([keys %$h1], [keys %$h2])) { $r{$_} = $h1->{$_} for $c->get_Lonly; for ($c->get_union) { unless (List::Compare->new($h1->{$_}, $h2->{$_})->is_LsubsetR) { $r{$_} = $h1->{$_}; } } } %r }