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


in reply to Re: Hash slices ?
in thread Hash slices ?

how do I find if at least one of many keys in a list is in a hash (quick, fast, and simple)

Dunno if this meets *all* of your criteria, but I find this simple enough:

my @search_keys = qw(one two three); my %hash = ( four=>4, five=>5, six=>6); my $foundit =0; foreach (@search_keys) { if (exists $hash{$_}) { $foundit =1; print "found an entry for $_ in %hash!\n"; } }

Philosophy can be made out of anything. Or less -- Jerry A. Fodor

Replies are listed 'Best First'.
Re: Re: Re: Hash slices ?
by davorg (Chancellor) on Dec 01, 2000 at 19:06 UTC

    Given that the idea is to find out if any of the keys exist in the hash, it would be more efficient to call last and exit the loop once you've found one.

    --
    <http://www.dave.org.uk>

    "Perl makes the fun jobs fun
    and the boring jobs bearable" - me