conflit strict backreference variable
Bonjour,
AVEC strict, je veux
"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| #! /usr/bin/perl -w
use strict;
use warnings;
#open(fileIn,"./erreursGoogleEarthSolutMoi.txt");
my $infile ;
#fileOut;fileIn;
my @tableau_fileIn;
my $ligne;
local $1=0;
$infile = 'erreursGoogleEarthSolutMoi.txt' ;
open(fileIn,$infile); #p48
open(fileOut,">poubOut");
#
##my($text) = "mississippi";
##$text =~ m/(i.*?s)/;
#
##print $1 . "\n";
#@tableau_fileIn=<fileIn>;
print "\nok";
#@tableau_fileIn=<./erreursGoogleEarthSolutMoi.txt>;
@tableau_fileIn=<fileIn>;
foreach $ligne (@tableau_fileIn)
{print "\nin boucle ";
#$ligne =~ s/\/opt.*\.so/kkk$1/g;
$ligne =~ s/(\/optso)/kkk\1/g; #\1 cat de fichier
##$text =~ s/printf.*lbl[0-9]+\);//g;
#print "\nok ";
# print $ligne, $1; comportement bizarre
print $1;
#
# print push(@lbls,3);
# print "\n";
#
# # comme remplacer ts les //lbl mais sanspouvoir specifier variable
# # but: par 10n , identifie doublons , 1ere chiffre=fichier , ordonné
}
close(fileIn);
close(fileOut);
#
# #affich tableau
# print @lbls;
# |
"
Il parait qu'on utilise \1 ds regexp et $1 en externe , mail perl me met "\1 better written as $1 at /home/peter/Desktop/erreursGoogleEarthSolutMoi.pl line 30."
Sauf que si je remplace \1 par $1, il met "uninitialized value $1".
Alors, j'ai mis : local $1=0; Mais en vain .
Alors comment faire quand on veut reutiliser une sous chaine de regexp à l'extérieur de regexp AVEC strict(testez votre solution, avant)?