Je veux ans une boucle remplacer à la volé des motifs qui sont varible.
Pour l'instant j'ai pas d'erreur mais ca ne me remplace rien ? Qu'est ce
qui cloche ? je mi pomme un peu entre les variables interpolées ou pas
les \s, ...
#---------------------------------------------
my @findPat;
$findPat[0] = "(application|session)\\s?\\(\"STANDART_";
$findPat[1] = "<!--\\s#include\\svirtual=\"/standart/";
et dans une boucle suivant pour chaque $siteEnCours
my @replacePat;
$replacePat[0] = '$1("'.$syncSite{$siteEnCours}{"client"};
$replacePat[1] = '<!-- #include
virtual="'.$syncSite{$siteEnCours}{"include"};
et dans une autre boucle on remplace :
$buffer =~ s/$findPat[$i]/$replacePat[$i]/gi;
#---------------------------------------------
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Julien C.
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel... si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Je veux ans une boucle remplacer à la volé des motifs qui sont varible. Pour l'instant j'ai pas d'erreur mais ca ne me remplace rien ? Qu'est ce qui cloche ? je mi pomme un peu entre les variables interpolées ou pas les s, ...
#--------------------------------------------- my @findPat; $findPat[0] = "(application|session)s?("STANDART_"; $findPat[1] = "<!--s#includesvirtual="/standart/";
et dans une boucle suivant pour chaque $siteEnCours my @replacePat; $replacePat[0] = '$1("'.$syncSite{$siteEnCours}{"client"}; $replacePat[1] = '<!-- #include virtual="'.$syncSite{$siteEnCours}{"include"};
et dans une autre boucle on remplace : $buffer =~ s/$findPat[$i]/$replacePat[$i]/gi; #---------------------------------------------
Merci d'avance Julien.
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans
$replacePat[0] qui devrai correspondre à application ou session. à
l'execution il ne me remplace pas $1 il me le met tel quel... si je
remplace ' par " il me remplace $1 par rien puisque la variable n'existe
pas encore.
Je veux ans une boucle remplacer à la volé des motifs qui sont varible.
Pour l'instant j'ai pas d'erreur mais ca ne me remplace rien ? Qu'est ce
qui cloche ? je mi pomme un peu entre les variables interpolées ou pas
les s, ...
#---------------------------------------------
my @findPat;
$findPat[0] = "(application|session)\s?\("STANDART_";
$findPat[1] = "<!--\s#include\svirtual="/standart/";
et dans une boucle suivant pour chaque $siteEnCours
my @replacePat;
$replacePat[0] = '$1("'.$syncSite{$siteEnCours}{"client"};
$replacePat[1] = '<!-- #include
virtual="'.$syncSite{$siteEnCours}{"include"};
et dans une autre boucle on remplace :
$buffer =~ s/$findPat[$i]/$replacePat[$i]/gi;
#---------------------------------------------
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel... si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Je veux ans une boucle remplacer à la volé des motifs qui sont varible. Pour l'instant j'ai pas d'erreur mais ca ne me remplace rien ? Qu'est ce qui cloche ? je mi pomme un peu entre les variables interpolées ou pas les s, ...
#--------------------------------------------- my @findPat; $findPat[0] = "(application|session)s?("STANDART_"; $findPat[1] = "<!--s#includesvirtual="/standart/";
et dans une boucle suivant pour chaque $siteEnCours my @replacePat; $replacePat[0] = '$1("'.$syncSite{$siteEnCours}{"client"}; $replacePat[1] = '<!-- #include virtual="'.$syncSite{$siteEnCours}{"include"};
et dans une autre boucle on remplace : $buffer =~ s/$findPat[$i]/$replacePat[$i]/gi; #---------------------------------------------
Merci d'avance Julien.
Jérémy JUST
On Wed, 29 Sep 2004 14:19:46 +0200 "Julien C." wrote:
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel...
Normal, puisqu'il est entre guillemets simples. Je te propose d'utiliser une syntaxe plus lisible:
si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Euh... Tu préfèrerais que le compilateur invente une valeur?
Que veux-tu exactement? Si tu veux te servir de la valeur de $1 venant d'une première regexp pour construire une seconde regexp, tu as intérêt à recopier $1 dans une variable intermédiaire. C'est plus simple, plus lisible, plus facile à maintenir... en gros, il y a moins de risque d'erreurs.
Et tu si tu peux tout faire tenir dans une seule regexp, en utilisant 1 (ie ce qui a matché dans la première parenthèse; c'est l'équivalent de $1, mais pendant que tu es encore dans la regexp), c'est encore mieux.
En fait ca fonctionne, mis à part le remplacement par la mémoire $1
dans $replacePat[0] qui devrai correspondre à application ou session.
à l'execution il ne me remplace pas $1 il me le met tel quel...
Normal, puisqu'il est entre guillemets simples. Je te propose
d'utiliser une syntaxe plus lisible:
si je remplace ' par " il me remplace $1 par rien puisque la variable
n'existe pas encore.
Euh... Tu préfèrerais que le compilateur invente une valeur?
Que veux-tu exactement?
Si tu veux te servir de la valeur de $1 venant d'une première regexp
pour construire une seconde regexp, tu as intérêt à recopier $1 dans une
variable intermédiaire. C'est plus simple, plus lisible, plus facile à
maintenir... en gros, il y a moins de risque d'erreurs.
Et tu si tu peux tout faire tenir dans une seule regexp, en utilisant
1 (ie ce qui a matché dans la première parenthèse; c'est l'équivalent
de $1, mais pendant que tu es encore dans la regexp), c'est encore
mieux.
On Wed, 29 Sep 2004 14:19:46 +0200 "Julien C." wrote:
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel...
Normal, puisqu'il est entre guillemets simples. Je te propose d'utiliser une syntaxe plus lisible:
si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Euh... Tu préfèrerais que le compilateur invente une valeur?
Que veux-tu exactement? Si tu veux te servir de la valeur de $1 venant d'une première regexp pour construire une seconde regexp, tu as intérêt à recopier $1 dans une variable intermédiaire. C'est plus simple, plus lisible, plus facile à maintenir... en gros, il y a moins de risque d'erreurs.
Et tu si tu peux tout faire tenir dans une seule regexp, en utilisant 1 (ie ce qui a matché dans la première parenthèse; c'est l'équivalent de $1, mais pendant que tu es encore dans la regexp), c'est encore mieux.
-- Jérémy JUST
Jack
Le 29/09/2004 14:19, :
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel... si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Avez vous regardé si les regex dynamiques étaient utilisables?
Le 29/09/2004 14:19, :
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans
$replacePat[0] qui devrai correspondre à application ou session. à
l'execution il ne me remplace pas $1 il me le met tel quel... si je
remplace ' par " il me remplace $1 par rien puisque la variable n'existe
pas encore.
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel... si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Avez vous regardé si les regex dynamiques étaient utilisables?
Julien C.
Jack wrote:
Le 29/09/2004 14:19, :
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel... si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Avez vous regardé si les regex dynamiques étaient utilisables?
non, j'ai rien trouvé dans la doc (j'ai lu rapidement ;-). mais a priori ca devrait marcher. sinon ca limite son utilisation, non ? (je débute en perl)
mon script se résume à ca :
#---------------------------------- my @findPat; my @replacePat; my $buffer;
$buffer = "If Application("XXX_Poipoi") <> "iopiop" Then n"; $buffer .= "If Session("XXX_Poipoi") <> "poipoi" Then ";
If 1("YYY_Poipoi") <> "iopiop" Then If 1("YYY_Poipoi") <> "poipoi" Then
merci pour vos réponses, Julien C.
Jack wrote:
Le 29/09/2004 14:19, :
En fait ca fonctionne, mis à part le remplacement par la mémoire $1
dans $replacePat[0] qui devrai correspondre à application ou session.
à l'execution il ne me remplace pas $1 il me le met tel quel... si je
remplace ' par " il me remplace $1 par rien puisque la variable
n'existe pas encore.
Avez vous regardé si les regex dynamiques étaient utilisables?
non, j'ai rien trouvé dans la doc (j'ai lu rapidement ;-). mais a priori
ca devrait marcher. sinon ca limite son utilisation, non ? (je débute en
perl)
mon script se résume à ca :
#----------------------------------
my @findPat;
my @replacePat;
my $buffer;
$buffer = "If Application("XXX_Poipoi") <> "iopiop" Then n";
$buffer .= "If Session("XXX_Poipoi") <> "poipoi" Then ";
En fait ca fonctionne, mis à part le remplacement par la mémoire $1 dans $replacePat[0] qui devrai correspondre à application ou session. à l'execution il ne me remplace pas $1 il me le met tel quel... si je remplace ' par " il me remplace $1 par rien puisque la variable n'existe pas encore.
Avez vous regardé si les regex dynamiques étaient utilisables?
non, j'ai rien trouvé dans la doc (j'ai lu rapidement ;-). mais a priori ca devrait marcher. sinon ca limite son utilisation, non ? (je débute en perl)
mon script se résume à ca :
#---------------------------------- my @findPat; my @replacePat; my $buffer;
$buffer = "If Application("XXX_Poipoi") <> "iopiop" Then n"; $buffer .= "If Session("XXX_Poipoi") <> "poipoi" Then ";
L'usage de 1, 2, etc. n'est autorisé que dans la regexp elle-même. Dans la chaîne de remplacement, il faut utiliser $1, $2, etc. Pour l'instant, cette erreur ne provoque qu'un warning mais un jour ce sera peut-être une erreur fatale...
L'usage de 1, 2, etc. n'est autorisé que dans la regexp elle-même. Dans la
chaîne de remplacement, il faut utiliser $1, $2, etc. Pour l'instant, cette
erreur ne provoque qu'un warning mais un jour ce sera peut-être une erreur
fatale...
L'usage de 1, 2, etc. n'est autorisé que dans la regexp elle-même. Dans la chaîne de remplacement, il faut utiliser $1, $2, etc. Pour l'instant, cette erreur ne provoque qu'un warning mais un jour ce sera peut-être une erreur fatale...