passer une variable en tant que text dans une fonction
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:
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:
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 )