Hur man använder funktionen Perl Array Grep ()

Funktionen Perl grep () är ett filter som kör ett regelbundet uttryck på varje element i en matris och endast returnerar elementen som utvärderar som Sann. Att använda vanliga uttryck kan vara extremt kraftfullt och komplex. Funktionerna grep () använder syntaxen @List = grep (Expression, @ array).

Använda Grep () -funktionen för att returnera riktiga uttryck

@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (/ ^ A /, @myNames);

Tänk på @myNames-arrayen som en rad med numrerade rutor, från vänster till höger och numrerade med början med noll. Funktionen grep () går igenom vart och ett av elementen (rutorna) i matrisen och jämför innehållet med det vanliga uttrycket. Om resultatet är Sann, läggs innehållet till i den nya @grepNames-matrisen.

I exemplet ovan söker det reguljära uttrycket / ^ A / efter alla värden som börjar med ett stort A. Efter att ha bläddrat igenom innehållet i @myNames-arrayen blir värdet av @grepNames ('Alexander', 'Andrew'), de enda två elementen som börjar med ett stort A.

instagram viewer

Reversing the Expression in a Grep () -funktion

Ett snabbt sätt att göra den här funktionen mer kraftfull är att vända det reguljära uttrycket med NOT-operatören. Det reguljära uttrycket letar sedan efter element som utvärderas till falsk och flyttar dem in i den nya matrisen.

@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (! / ^ A /, @myNames);

I exemplet ovan söker det reguljära uttrycket efter något värde som inte börjar med ett stort A. Efter att ha siktat igenom innehållet i matrisen @myNames blir värdet av @grepNames ('Jacob', 'Michael', 'Joshua', 'Matthew').

Om Perl

Perl är ett anpassningsbart programmeringsspråk som ofta används för att utveckla webbapplikationer. Perl är ett tolkat, inte kompilerat språk, så dess program tar mer CPU-tid än ett sammanställt språk - ett problem som blir mindre viktigt när processorns hastighet ökar. Att skriva i Perl är dock snabbare än att skriva på ett sammanställt språk, så den tid du sparar är din.