no save
Assistance
Achat
News

Forum | programmation
[PERL]Récupération chaîne caractère...
lami20j, le lun. 27 févr. 2006 à 21:32:35
Re,

Quelque petits conseils :
1
$inter=$1;
$ligne="+$inter+ $ligne";

Pas besoin d'introduire la variable $inter, tu peux utiliser directement $1

Donc $ligne ="+$1+ $ligne";

2
Pas besoin d'utiliser des paranthèses pour afficher.
print ("$ligne");

Je trouve donc correctement les ligfnes ou mon occurence est présente mais le problème est qu'il y a des fois ou mon occurence est présente plusieurs fois dans la ligne . . . et avec ce script je trouve que la première occurence . . .

En fait il ne s'agit pas de ce que tu trouves mais plutôt de ce que tu affiches.

$ligne="+$inter+ $ligne";

Veut dire que chaque ligne est remplacée avec le contenu de $1 et la ligne.

Ex:
disons que le contenu soit +L. 125-65+
et pour les lignes on a

coucou@... et 2eme fois coucou@....

Le résultat sera
+L. 125-65+ coucou@... et 2eme fois coucou@....
même si tu trouves tous les occurences avec le modificateur /g

m//
Mais il ne faut pas oublier pas non plus que en contexte scalaire m//g indique une detection progressive et dans un contexte de liste m//g renvoie la liste de toutes les occurences. if ( @val = $mot =~ /test/gi ) {# contexte liste
printf "Test trouver de %d fois.\n",scalar @val;
}
=======================================
while ( $val =~ /t/gi ) { # contexte scalaire
printf "t ou T dans la position %d.\n",pos($val) -1;
}
s///
Dans ce cas s///g actionne comme un recherch/remplecement global qui modifie tout d'un coup et il ne fait pas de détection progressive en contexte scalaire.
Précédentlami20j
févr. 06
lami20j
févr. 06
Suivant
REPONSES
Zep3k!GnO
nov. 05
jisisv
nov. 05
Zep3k!GnO
nov. 05
Zep3k!GnO
nov. 05
Zep3k!GnO
nov. 05
lami20j
févr. 06
lami20j
févr. 06
lami20j
févr. 06
Version Web
Réalisé par RedShift
no save