# assume %matches is declared before the loops ... if ( /$searchstring/i && ! exists($matches{$searchstring}) ) { push @stringsfound, $searchstring; $matches{$searchstring} = 1; } ...