Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
i have a hash and want to simply check if items in an array are present in the hash. all of the items in the array should be in the hash, but i'm only finding 1873/ 1948.
can anyone suggest how I can find which keys in the hash are not matching to values in the array? The approach i have tried seems to just print everything many times over!
Kind regards
here is my code:
my %hash = map {$pids[$_] => $location_topology[$_]} 0 .. $#pids; print "size of hash: " . keys( %hash ) . ".\n"; #print @all_ids; #print "@all_ids\n"; while ( my ($key, $value) = each(%hash) ) { for (my $i=0; $i<@all_ids; $i++) { if ($all_ids[$i] eq $key) { print "$key => $value => $all_gc3s[$i]\n"; } # if ($all_ids[$i] ne $key) { #print "$key\n"; # } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: stuck in a hash
by bart (Canon) on Aug 04, 2005 at 20:51 UTC | |
|
Re: stuck in a hash
by davidrw (Prior) on Aug 04, 2005 at 20:50 UTC | |
|
Re: stuck in a hash
by Eimi Metamorphoumai (Deacon) on Aug 04, 2005 at 21:08 UTC | |
|
Re: stuck in a hash
by neniro (Priest) on Aug 04, 2005 at 23:10 UTC | |
|
Re: stuck in a hash
by neniro (Priest) on Aug 04, 2005 at 22:49 UTC |