in reply to Re: Compare arrays
in thread Compare arrays

Out of interest using your code as a base how do I print both of the array elements that have caused the mismatch ? e.g.
array1 = "e" array2 = "d"

Replies are listed 'Best First'.
Re^3: Compare arrays
by kennethk (Abbot) on Nov 02, 2010 at 14:21 UTC
    There are a couple ways to interpret this question. I will assume you mean you would like the elements of each array that are excluded from the union of the two.

    #!/usr/bin/perl use strict; use warnings; my @array1 = qw(a b c e); my @array2 = qw(a b c d); my %hash; for my $key (@array2) { $hash{$key}++; } for my $key (@array1) { print "Fail #1: $key\n" unless $hash{$key}--; } for my $key (keys %hash) { print "Fail #2: $key\n" if $hash{$key} > 0; }

    For other related solutions, check out How do I compute the difference of two arrays? How do I compute the intersection of two arrays? in perlfaq4