indietro

  • grep BLOCCO LISTA
  • grep ESPR, LISTA

    è simile nello spirito, ma non uguale, a grep(1) e ai suoi congiunti. In particolare, non è limitata all'uso di espressioni regolari.

    Valuta il BLOCCO o l'ESPR per ogni elemento della LISTA (assegnando localmente a $_ ogni elemento) e restituisce una valore di lista costituito da quegli elementi per i quali la valutazione dell'espressione restituisce il valore vero. In un contesto scalare, restituisce il numero di volte che l'espressione ha restituito valore vero.

        @pippo = grep(!/^#/, @pluto);  # spazza via i commenti

    o equivalentemente,

        @pippo = grep {!/^#/} @pluto;  # spazza via i commenti

    Va notato che $_ è un alias del valore dell'elemento della lista, quindi può essere usato per modificare elementi della LISTA. Benché utile e supportato, può causare risultati bizzarri se gli elementi della LISTA non sono variabili. Allo stesso modo, grep restituisce alias agli elementi della lista originale, in modo molto simile a quello in cui il ciclo for costruisce alias per gli elementi della lista. Per questa ragione modificare un elemento della lista restituita da grep (ad esempio in un foreach, in un map o in un altro grep) di fatto modifica l'elemento della lista originale. è qualcosa che di solito si dovrebbe evitare scrivendo codice chiaro.

    Consultate anche map per una lista composta dai risultati del BLOCCO o dell'ESPR.