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 [EMAIL PROTECTED] 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. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]