Целью следующего примера кода является чтение содержимого $target
и присвоение всех уникальных результатов поиска регулярных выражений массиву.
Я подтвердил, что мое утверждение регулярного выражения работает, поэтому я упрощаю это, чтобы не фокусироваться на нем.
Когда я выполняю скрипт, я получаю список всех результатов регулярных выражений, однако результаты не являются уникальными, что приводит меня к мысли, что мои манипуляции с массивом или моя проверка if (grep{$_ eq $1} @array) {
вызывают проблемы.
#!/usr/bin/env perl
$target = "string to search";
$inc = 0;
$once = 1;
while ($target =~ m/(regex)/g) { #While a regex result is returned
if ($once) { #If $once is not equal to zero
@array[$inc] = $1; #Set the first regex result equal to @array[0]
$once = 0; #Set $once equal to zero so this is not executed more than once
} else {
if (grep{$_ eq $1 } @array ) { #From the second regex result, check to see if the result is already in the array
#If so, do nothing
} else {
@array[$inc] = $1; #If it is not, then assign the regex search result to the next unused position in the array in any position.
$inc++; #Increment to next unused array position.
}
}
}
print @array;
exit 0;