develooper Front page | perl.beginners | Postings from February 2002

Re: ignoring some fields in a comparision of hashes

Thread Previous
From:
Chas Owens
Date:
February 7, 2002 10:45
Subject:
Re: ignoring some fields in a comparision of hashes
Message ID:
1013107504.9444.105.camel@tert.icallinc.com
On Thu, 2002-02-07 at 13:21, Jeff 'japhy' Pinyan wrote:
> On Feb 7, Chas Owens said:
> 
> >I have two hashes (%a and %b) that contain data for one person from two
> >different systems and I want to compare these hashes to see if the
> >systems are out of sync.  The catch is I know that some of the fields
> >will always be different and I want to ignore those fields.  Below is my
> >solution, does anyone have a better way of doing this? BTW: there are a
> >lot of fields currently with more being added as time goes on and the
> >number of fields I want to ignore will stay pretty much the same).
> 
> You're already using hashes!  The better solution to your problem is to
> make a hash of keys to ignore.
> 
> ><example>
> >my @ignore = ("key1", "key2");
> 
>   my %ignore;
>   @ignore{ "key1", "key2" } = ();
> 
> >KEYS: foreach my $key (keys %a) {
> 
> >  foreach my $ignore (@ignore) {
> >    next KEYS if $key eq $ignore;
> >  }
> 
>     next KEYS if exists $ignore{$key};
> 
> >	if ($a{$key} ne $b{$key}) {
> >		print "$key is different ($a{$key}, $b{$key})\n";
> >	}
> >}
> ></example>
> 
> -- 
> Jeff "japhy" Pinyan      japhy@pobox.com      http://www.pobox.com/~japhy/
> RPI Acacia brother #734   http://www.perlmonks.org/   http://www.cpan.org/
> ** Look for "Regular Expressions in Perl" published by Manning, in 2002 **
> <stu> what does y/// stand for?  <tenderpuss> why, yansliterate of course.

Doh! Now I feel like an idiot.  I knew what I was doing was too
complicated.
 
-- 
Today is Pungenday the 38th day of Chaos in the YOLD 3168
Grudnuk demand sustenance!

Missle Address: 33:48:3.521N  84:23:34.786W


Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About