Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup fr.comp.lang.* Forum > Newsgroup fr.comp.lang.perl
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 15/08/2008, 13h58
Marc Espie
 
Messages: n/a
Par défaut Re: ne pas recompiler une regex

In article <g83u3h$1sp3$1***talisker.lacave.net>, mpg <mpg***elzevir.fr> wrote:
>Bonjour,
>
>grâce aux messages d'erreurs reçus en traitant un fichier mal formaté, je me
>suis rendu compte que dans
>
>grep (/$motif/, ***liste);
>
>la regexp semble être recompilée à pour chaque élément de la liste. Même si
>pour ce script précis la performance n'est pas un problème, en général
>j'imagine que c'est très mauvais.
>
>Y a-t-il un moyen d'indiquer à Perl que $motif ne va pas changer au cours du
>parcours de la liste (il changera plus tard, mais c'est un autre problème)
>et que par conséquent il peut compiler une fois en début de liste et c'est
>tout ?


Oui, suffit de mettre /$motif/o

perlre renvoie a perlop
qui le documente... j'avoue que ca n'est pas immediat a trouver...
Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 15/08/2008, 14h41
Marc Espie
 
Messages: n/a
Par défaut Re: ne pas recompiler une regex

In article <g840cj$25rn$1***talisker.lacave.net>, mpg <mpg***elzevir.fr> wrote:
>Le (on) vendredi 15 août 2008 14:58, Marc Espie a écrit (wrote) :
>
>> Oui, suffit de mettre /$motif/o
>>
>> perlre renvoie a perlop
>> qui le documente... j'avoue que ca n'est pas immediat a trouver...

>
>Merci beaucoup. Par contre même après avoir lu la partie correspondante de
>perlop, j'ai du mal à comprendre la « portée » du truc. En fait ma
>situation est un peu comme ça :
>
>for $motif (***listemotifs) {
> &fairedestrucs() if (grep (/$motif/o, ***autreliste));
>}
>
>Après essai, j'ai l'impression que ça ne marche plus si je rajoute le
>remplace /$motif/ par /$motif/o (par contre ça va en effet plus vite).

Oui, il compile une seule fois.


>Est-ce que ça veut dire que si je voulais optimiser le truc, je devrais
>passer par des construction plus sophistiquées avec qr() ?


Oui, c'est pas si complique que ca note.

Genre:
for my $motif (***listemotifs) {
my $re = qr/$motif/o;
fairedestrucs if grep $re, ***autreliste;
}

et tu peux te passer du $re intermediaire avec un map:
for my $motif (map {qr/$_/o} ***listemotifs) {
fairedestrucs if grep $motif, ***autreliste;
}

ou approchant...
Réponse avec citation
 
Réponse
Tags: ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
regex miterrandir Newsgroup fr.comp.os.unix 2 24/01/2008 11h30
[HS] RegEx? Mathieu G Newsgroup fr.comp.text.tex 8 14/12/2007 09h37
grep & regex kael Newsgroup fr.comp.lang.python 8 01/09/2007 08h34
regex pour nom de variable Sebosac Newsgroup alt.fr.comp.lang.php 0 17/05/2007 19h12
Les exemples à recompiler avec BeOS 5 PersonalEdition PIRONNEAU Stéphane Newsgroup fr.comp.sys.be 4 09/07/2004 19h56


Fuseau horaire GMT. Il est actuellement 09h33.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,22024 seconds with 11 queries