Sto cercando alcuni dettagli su come funziona la funzione grep
di Perl. Sto facendo questo:L'ordinamento aiuta l'efficienza di grep in Perl
if (grep{ $foo == $_ } @bar) {
some code;
}
Supponiamo @bar
è grande (centinaia di migliaia di elementi). Con i miei dati, se ordino @bar
, è più probabile che i valori di $foo
appaiano vicino all'inizio dell'array piuttosto che vicino alla fine. Mi chiedo se questo aiuterà le prestazioni.
altre parole, con il codice di cui sopra, fa grep
spostare sequenzialmente attraverso @bar
verificare se $foo == $_
e quindi uscire immediatamente dopo ogni valore è stato trovato per essere vero? O controllerebbe effettivamente ogni elemento di @bar
prima di restituire un valore?
buona domanda.Penso che tu debba usare non 'grep', ma' for() 'per la tua uscita anticipata – gaussblurinc
E vedi il mio commento qui sotto. 'List :: MoreUtils' su CPAN può fare quello che vuoi, se ho capito bene il tuo compito – gaussblurinc
@loldop Dovresti metterlo come risposta. Sembra che 'firstidx' farebbe quello che voglio. – itzy