Perl grep () -funksjonen er et filter som kjører et regelmessig uttrykk på hvert element i en matrise og returnerer bare elementene som evaluerer som ekte. Å bruke vanlige uttrykk kan være ekstremt kraftig og sammensatt. Grep () -funksjonene bruker syntaks @List = grep (Uttrykk, @ array).
Bruke Grep () -funksjon for å returnere ekte uttrykk
@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (/ ^ A /, @myNames);
Tenk på matrisen @myNames som en rad med nummererte bokser, som går fra venstre mot høyre og nummerert med en null. Grep () -funksjonen går gjennom hvert av elementene (boksene) i matrisen og sammenligner innholdet med det vanlige uttrykket. Hvis resultatet blir ekte, blir innholdet deretter lagt til den nye @grepNames-matrisen.
I eksemplet over er det ordinære uttrykket / ^ A / på jakt etter en hvilken som helst verdi som starter med en bokstav A. Etter å ha siktet gjennom innholdet i @myNames-matrisen, blir verdien av @grepNames ('Alexander', 'Andrew'), de eneste to elementene som begynner med en hovedstad A.
Reversing the Expression in a Grep () -funksjon
En rask måte å gjøre denne spesielle funksjonen kraftigere er å snu det ordinære uttrykket med NOT-operatøren. Det ordinære uttrykket ser da etter elementer som evalueres til falsk og flytter dem inn i den nye matrisen.
@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (! / ^ A /, @myNames);
I eksemplet ovenfor leter det ordinære uttrykket etter enhver verdi som ikke starter med en hovedstad A. Etter å ha siktet gjennom innholdet i @myNames-matrisen, blir verdien av @grepNames ('Jacob', 'Michael', 'Joshua', 'Matthew').
Om Perl
Perl er et tilpasningsdyktig programmeringsspråk som ofte brukes til å utvikle webapplikasjoner. Perl er et tolket, ikke kompilert språk, så programmene tar mer CPU-tid enn et kompilert språk - et problem som blir mindre viktig når prosessorenes hastighet øker. Å skrive i Perl er imidlertid raskere enn å skrive på et sammenstilt språk, så tiden du sparer er din.