my @diff; my $aoh = csv (in => "ad.txt", bom => 1, on_in => sub { my $sam = $_[1]{samaccountname} or die "No name in AD"; my $ahr = $hr->{$sam} or die "I got AD data for $sam, not in HR\n"; push @diff, map { [ $sam, $_, $ahr->{$_}, $_[1]{$_} ] } grep { $ahr->{$_} ne $_[1]{$_} } @keys; }); csv (in => \@diff, out => "diff.csv");