Bonjour,

Je suis débutant en perl, je doit modifier du texte dans un fichier à certain endroit.
Je doit faire plusieurs modification alors j'ai décidé de faire une petite fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
sub substitution {
	my ($ligneAModifier, $limite1 ,$limite2 , $motARemplacer, $motDeRemplacement) = @_;
	my ( $val1, $val2) = split(/$limite1/i, $ligneAModifier , 2);
	my ( $val3, $val4) = split(/$limite2/i, $val2, 2);
	$val3 =~ s/$motARemplacer/$motDeRemplacement/g;
	return $val1."$limite1".$val3."$limite2".$val4;
}
Alors avec une version sans fonction cela marche, mais dès que j'utilise la fonction je n'arrive plus à lui faire comprendre le $1 lorsque je l'appelle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
if($ligne2 =~ /VBCode/i){
        $ligne2 = substitution($ligne2, "Inherits", "Auto-Generated", "Friend", "\' Friend");
	$ligne2 = substitution($ligne2, "Protected Sub CleanupUserCode", "Sub", "(\\w+\\s*=)", "\' \$1");
	print $FhModifie $ligne2;
}
En effet sans fonction cela me donné le regex s/(\\w+\\s*=)/' $1/g
Or maintenant quand il doit utiliser s/$motARemplacer/$motDeRemplacement/g,
soit je met "\' \$1" pour $motDeRemplacement, et il me remplace dans le fichier par ' $1,
soit je met "\' $1" et la il est pas content car il ne sait pas d'ou sort ce $1,

Comment je peut faire pour passer le $1 et qu'il le prenne en considération en tant que s/(\\w+\\s*=)/' $1/g?

Merci d'avance (je suis nouveau sur le site dont si j'ai fait quelque chose de mal ou autre dites le moi )