Perl -Grep and Hash

Grep with Array

Grep returns a list, bracket will return the actual value. The first argument needs to evaluate as true or false to return the match.

if (my ($matched) = grep $_ eq $match, @array) {
    print "found it: $matched\n";
}

Convert Array into hash

Converting array to hash with array elements as the hash keys amd values are simply 1.

my %hash = map {$_ => 1} @array;
# check if the hash contains $match
if (defined $hash{$match}) {
    print "found it\n";
}

 

Right way to use grep

This is smart match will match the exact word.

if (grep /$match/, @array) {
    print "found it\n";
}

vs

This will return the number of elements in match which is not correct to use with if to match a specific match.

if (grep($match, @array)) 
{ print "found it\n"; }

Multiple Arrays

Using multiple array to match.

if (grep /$match/, @array, @array1, @array2, @array3)
{
    print "found it\n";
}