The return values from full_compare are confusing you here. From the documentation for full_compare:
In scalar context returns the number of columns that differ (zero if the arrays are the same). In list context returns an list containing the indexes of the columns that differ (an empty list if the arrays are the same).
So if the arrays are the same (which yours are) then full_compare returns an empty list (in list context) or zero (in scalar context). Your check is the wrong way round. You need:
if ($comp->full_compare(\@arr1, \@arr2)) { print "Arrays are different\n"; } else { print "Arrays are the same.\n"; }
And, yes, it's confusing. The return values for simple_compare are the other way round.
"The first rule of Perl club is you do not talk about
Perl club."
-- Chip Salzenberg
In reply to Re: Array::Compare
by davorg
in thread Using Array::Compare
by rsriram
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |