Funkcja Perl grep () to filtr, który uruchamia wyrażenie regularne na każdym elemencie tablicy i zwraca tylko te elementy, które są oceniane jako prawdziwe. Używanie wyrażeń regularnych może być niezwykle potężne i złożone. Funkcje grep () używają składni @List = grep (Expression, @array).
Użycie funkcji Grep () do zwrócenia prawdziwych wyrażeń
@myNames = („Jacob”, „Michael”, „Joshua”, „Mathew”, „Alexander”, „Andrew”);
@grepNames = grep (/ ^ A /, @myNames);
Pomyśl o tablicy @myNames jako o rzędzie ponumerowanych pól, przechodzących od lewej do prawej i ponumerowanych zaczynających się od zera. Funkcja grep () przechodzi przez każdy z elementów (pól) w tablicy i porównuje ich zawartość z wyrażeniem regularnym. Jeśli wynikiem jest prawdziwe, zawartość jest następnie dodawana do nowej tablicy @grepNames.
W powyższym przykładzie wyrażenie regularne / ^ A / szuka dowolnej wartości zaczynającej się od dużej litery A. Po przejrzeniu zawartości tablicy @myNames wartość @grepNames staje się („Alexander”, „Andrew”), jedynymi dwoma elementami, które zaczynają się od dużej litery A.
Odwracanie wyrażenia w funkcji Grep ()
Jednym szybkim sposobem na wzmocnienie tej konkretnej funkcji jest odwrócenie wyrażenia regularnego za pomocą operatora NOT. Wyrażenie regularne następnie szuka elementów, które oceniają na fałszywy i przenosi je do nowej tablicy.
@myNames = („Jacob”, „Michael”, „Joshua”, „Mathew”, „Alexander”, „Andrew”);
@grepNames = grep (! / ^ A /, @myNames);
W powyższym przykładzie wyrażenie regularne szuka dowolnej wartości, która nie zaczyna się od dużej litery A. Po przejrzeniu zawartości tablicy @myNames wartość @grepNames staje się („Jacob”, „Michael”, „Joshua”, „Matthew”).
O Perlu
Perl jest adaptowalnym językiem programowania często używanym do tworzenia aplikacji internetowych. Perl jest językiem interpretowanym, nieskompilowanym, więc jego programy zajmują więcej czasu procesora niż język skompilowany - problem, który staje się mniej ważny wraz ze wzrostem prędkości procesorów. Jednak pisanie w Perlu jest szybsze niż pisanie w skompilowanym języku, więc oszczędzasz czas.