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]