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


in reply to Checking a hash for two matching values.

Arguably more readable than those above ... (IMHO, code matches problem description closer)
my @found= grep { my %r = reverse %$_; exists $r{cat} && exists $r{d +og}} @pets;

             My goal ... to kill off the slow brain cells that are holding me back from synergizing my knowledge of vertically integrated mobile platforms in local cloud-based content management system datafication.

Replies are listed 'Best First'.
Re^2: Checking a hash for two matching values.
by moritz (Cardinal) on Sep 17, 2013 at 05:51 UTC

      It's easy enough to add case insensitivity to NetWallah's code with fc or lc.

      For v5.16 or newer:

      use v5.16; ... my @found= grep { my %r = reverse map fc, %$_; exists $r{cat} && exists $r{dog} } @pets;
      For older versions as well:
      my @found= grep { my %r = reverse map lc, %$_; exists $r{cat} && exists $r{dog} } @pets;

      Hmm - I did not notice any hints of requiring case-insensitivity, but in any case, that requirement is easily accommodated in my code by adding a "map {lc}" .
      my @found= grep { my %r = map{lc} reverse %$_; exists $r{cat} && exis +ts $r{dog}} @pets;

                   My goal ... to kill off the slow brain cells that are holding me back from synergizing my knowledge of vertically integrated mobile platforms in local cloud-based content management system datafication.