Je cherche des détails sur le fonctionnement de la fonction grep
de Perl. Je fais ceci:Le tri aide-t-il l'efficacité de grep en Perl?
if (grep{ $foo == $_ } @bar) {
some code;
}
Suppose @bar
est grande (des centaines de milliers d'éléments). Avec mes données, si je trier @bar
, les valeurs de $foo
sont plus susceptibles d'apparaître près du début du tableau que vers la fin. Je me demande si cela aidera la performance.
En d'autres termes, avec le code ci-dessus, est-ce que grep
se déplace séquentiellement à travers @bar
en vérifiant si $foo == $_
et puis quittez immédiatement une fois que toute valeur a été trouvée comme étant vraie? Ou vérifierait-il réellement chaque élément de @bar
avant de renvoyer une valeur?
bonne question.Je pense, que vous devez utiliser pas 'grep', mais' for() 'pour votre sortie anticipée – gaussblurinc
Et voir mon commentaire ci-dessous. 'List :: MoreUtils' sur CPAN peut faire ce que vous voulez, si je comprends bien votre tâche – gaussblurinc
@ loldop Vous devriez mettre cela comme une réponse. On dirait que 'firstidx' ferait ce que je veux. – itzy