On Dec 12, 2007 9:49 AM, Roman Daszczyszak <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I am trying to utilize Data::Compare to compare two data structures
> containing user names and account attributes from Windows XP systems.
> Using Win32API::Net, it returns an array of usernames, which can be
> looped through to pull a hash of each users' attributes.  However,
> comparing these hashes over time always results in a false match due
> to the passwordAge attribute (value is # of seconds since epoch, so
> it's always different).  I tried using the ignore_hash_keys parameter
> to ignore it, but it still never matches correctly.  Is there a way to
> check if the attribute is actually being ignored?  Am I using it
> wrong? (I copied the line directly from the sample code on CPAN and
> just changed the variables)
>
> Code below:
>             $updateUsers = Compare(\%oldUsers, \%newUsers, {
> ignore_hash_keys => [qw(passwordAge)] });
>
> It always returns a '0' (false match).
> Any ideas?
> Roman

The code you quoted looks correct, but without seeing the data and the
rest of the code it is hard to say for certain.  Construct a simple
case like

#!/usr/bin/perl

use strict;
use warnings;
use Data::Compare;

my %a = (foo => 10, bar => [1, 2, 3], baz => 4);
my %b = (foo => 10, bar => [1, 2, 3], baz => 5);

my $bool = Compare(\%a, \%b, {ignore_hash_keys => ['baz']});

print "got $bool\n";

to see if the module works correctly.  If it does then start looking
at your data to see why it does not match.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to