La funzione Perl grep () è un filtro che esegue un'espressione regolare su ciascun elemento di un array e restituisce solo gli elementi che valutano come vero. L'uso delle espressioni regolari può essere estremamente potente e complesso. Le funzioni grep () usano la sintassi @List = grep (Expression, @array).
Utilizzo della funzione Grep () per restituire espressioni vere
@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (/ ^ A /, @myNames);
Pensa all'array @myNames come a una fila di caselle numerate, che vanno da sinistra a destra e numerate iniziando con uno zero. La funzione grep () passa attraverso ciascuno degli elementi (box) nella matrice e confronta il loro contenuto con l'espressione regolare. Se il risultato è vero, i contenuti vengono quindi aggiunti al nuovo array @grepNames.
Nell'esempio sopra, l'espressione regolare / ^ A / sta cercando qualsiasi valore che inizia con la A maiuscola. Dopo aver setacciato il contenuto dell'array @myNames, il valore di @grepNames diventa ('Alexander', 'Andrew'), gli unici due elementi che iniziano con la A maiuscola.
Invertire l'espressione in una funzione Grep ()
Un modo rapido per rendere più potente questa particolare funzione è invertire l'espressione regolare con l'operatore NOT. L'espressione regolare cerca quindi elementi che valutano falso e li sposta nel nuovo array.
@myNames = ('Jacob', 'Michael', 'Joshua', 'Mathew', 'Alexander', 'Andrew');
@grepNames = grep (! / ^ A /, @myNames);
Nell'esempio sopra, l'espressione regolare sta cercando qualsiasi valore che non inizi con la A maiuscola. Dopo aver setacciato il contenuto dell'array @myNames, il valore di @grepNames diventa ('Jacob', 'Michael', 'Joshua', 'Matthew').
Informazioni su Perl
Perl è un linguaggio di programmazione adattabile spesso utilizzato per sviluppare applicazioni Web. Perl è un linguaggio interpretato, non compilato, quindi i suoi programmi impiegano più tempo della CPU rispetto a un linguaggio compilato, un problema che diventa meno importante all'aumentare della velocità dei processori. Tuttavia, scrivere in Perl è più veloce che scrivere in un linguaggio compilato, quindi il tempo che risparmi è tuo.