De functie Perl grep () is een filter die een reguliere expressie uitvoert op elk element van een array en alleen de elementen retourneert die evalueren als waar. Het gebruik van reguliere expressies kan uiterst krachtig en complex zijn. De grep () -functies gebruiken de syntaxis @List = grep (Expression, @array).
@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (/ ^ A /, @myNames);
Beschouw de array @myNames als een rij genummerde vakken, van links naar rechts en genummerd beginnend met een nul. De functie grep () doorloopt elk van de elementen (vakken) in de array en vergelijkt de inhoud ervan met de reguliere expressie. Als het resultaat is waar, de inhoud wordt vervolgens toegevoegd aan de nieuwe array @grepNames.
In het bovenstaande voorbeeld zoekt de reguliere expressie / ^ A / naar een waarde die begint met een hoofdletter A. Nadat de inhoud van de array @myNames is doorzocht, wordt de waarde van @grepNames ('Alexander', 'Andrew') , de enige twee elementen die met een hoofdletter A beginnen.
Een snelle manier om deze specifieke functie krachtiger te maken, is de reguliere expressie om te keren met de operator NOT. De reguliere expressie zoekt vervolgens naar elementen die evalueren vals en verplaatst ze naar de nieuwe array.
@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (! / ^ A /, @myNames);
In het bovenstaande voorbeeld zoekt de reguliere expressie naar elke waarde die niet met een hoofdletter A begint. Nadat de inhoud van de array @myNames is doorzocht, wordt de waarde van @grepNames ('Jacob', 'Michael', 'Joshua) ',' Matthew ').
Perl is een aanpasbare programmeertaal die vaak wordt gebruikt om webapplicaties te ontwikkelen. Perl is een geïnterpreteerde, niet gecompileerde, taal, dus zijn programma's nemen meer CPU-tijd in beslag dan een gecompileerde taal - een probleem dat minder belangrijk wordt naarmate de snelheid van processors toeneemt. Schrijven in Perl is echter sneller dan schrijven in een gecompileerde taal, dus u bespaart tijd.