Je vous prie d'excuser le côté "consommateur" de ma demande, mais après
l'essai de différents tuto pour les expressions régulières, je n'y arrive
pas et je dois finir pour ce soir.
J'ai une série de ligne dans un fichier du type
Inutile d'utiliser une expression régulière pour cela. On peut utiliser 'index' et 'substr' (en supposant que la ligne à traiter est dans $ligne) :
my $newligne = substr $line, 0, index $ligne, ' '; $newligne .= "n";
Perso, j'aurai eu tendance à utiliser split:
my $newligne = (split ' ',$line)[0] . "n";
Est-ce moins efficace ?
Paul Gaborit
À (at) Thu, 25 Oct 2007 10:06:19 +0200, "Stéphane Müller" écrivait (wrote):
Inutile d'utiliser une expression régulière pour cela. On peut utiliser 'index' et 'substr' (en supposant que la ligne à traiter est dans $ligne) :
my $newligne = substr $line, 0, index $ligne, ' '; $newligne .= "n";
Perso, j'aurai eu tendance à utiliser split:
my $newligne = (split ' ',$line)[0] . "n";
Est-ce moins efficace ?
À une époque, ça l'était (moins efficace) car le séparateur de 'split' est potentiellement une expression rationnelle. Mais il est fort possible que les optimisations sous-jacentes rendent cela équivalent...
Il faudrait faire quelques mesures de performances. ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 25 Oct 2007 10:06:19 +0200,
"Stéphane Müller" <stephane.muller@laposte.net> écrivait (wrote):
Inutile d'utiliser une expression régulière pour cela. On peut
utiliser 'index' et 'substr' (en supposant que la ligne à
traiter est
dans $ligne) :
my $newligne = substr $line, 0, index $ligne, ' ';
$newligne .= "n";
Perso, j'aurai eu tendance à utiliser split:
my $newligne = (split ' ',$line)[0] . "n";
Est-ce moins efficace ?
À une époque, ça l'était (moins efficace) car le séparateur de 'split'
est potentiellement une expression rationnelle. Mais il est fort
possible que les optimisations sous-jacentes rendent cela équivalent...
Il faudrait faire quelques mesures de performances. ;-)
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Thu, 25 Oct 2007 10:06:19 +0200, "Stéphane Müller" écrivait (wrote):
Inutile d'utiliser une expression régulière pour cela. On peut utiliser 'index' et 'substr' (en supposant que la ligne à traiter est dans $ligne) :
my $newligne = substr $line, 0, index $ligne, ' '; $newligne .= "n";
Perso, j'aurai eu tendance à utiliser split:
my $newligne = (split ' ',$line)[0] . "n";
Est-ce moins efficace ?
À une époque, ça l'était (moins efficace) car le séparateur de 'split' est potentiellement une expression rationnelle. Mais il est fort possible que les optimisations sous-jacentes rendent cela équivalent...
Il faudrait faire quelques mesures de performances. ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>