Search code examples
perlcgi

Compare two arrays in a easy way using Perl


Is there any easy way to compare two string arrays in Perl?

@array1  = (value1, value2, value3...);
@array2  = (value1, value3, value4...);

I need the comparison like below for "N" Number of values,

value1 eq value1 
value2 eq value3
value3 eq value4

Please suggest me is there any module to do this?

Thanks


Solution

  • Hmm... a module to compare arrays, you say. How about Array::Compare?

    use Array::Compare;
    
    my $compare = Array::Compare->new;
    
    my @array1  = (value1, value2, value3...);
    my @array2  = (value1, value3, value4...);
    
    if ($compare->compare(\@array1, \@array2)) {
      say "Arrays are the same";
    } else {
      say "Arrays are different";
    }
    

    But you can also use the smart match operator.

    if (@array1 ~~ @array2) {
      say "Arrays are the same";
    } else {
      say "Arrays are different";
    }