Bonjour,
je voudrais écrire un programmer, qui lit plusieurs fichiers, terminés par l'extension ".txt", et stockés dans le même repertoire. Le programme doit lire chaque fichier, et chaque ligne et chercher la première valeur trouvée après le mot debut, et la première valeur trouvée après le mot fin et faire leur différence. Idem pour la ligne suivante, et pour les autres fichiers.
A la compilation, j'obtiens l'erreur suivante:
Unmatched ) in regex; marked by <-- HERE in m/) <-- HERE \S/ at lectureFichierPerl.pl line 18
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
| #!/usr/bin/perl -w
#use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);
my $dir = './Chemin/Fichier/';
# read all entries in the directory:
opendir DIR, $dir or die "Cannot open $dir $!";
my @listeFichiers = grep /\.txt$/, readdir DIR;
foreach $file (@listeFichiers)
{
open FILE, $file or die $!;
print $file . "\n";
while (my $line = <FILE>) # lire chaque ligne et chercher la première valeur trouvée après le mot debut, et la première valeur trouvée après le mot fin
{
$line1 =~ m{debut}/(\s*)\S*\s*\S*\s*\S*\s*\S*\s*(\S*/);
$X1=$S1; $X4=$S4;
$lenght1= $X1-$X2; # Calculation of the lenght of first segment
$line1 =~ m{fin}/(\s*)\S*\s*\S*\s*\S*\s*\S*\s*(\S*/);
$X1=$S11; $X4=$S14;
$lenght2= $X1-$X2; # Calcul de la longueur du premier segment
}
push(@elements1, $lenght1); #Push la longueur dans un tableau pour calculer la moyenne de la longueur du segment n°1
push(@elements2, $lenght2); #Push la longueur dans un tableau pour calculer la moyenne de la longueur du segment n°2
}
foreach (@elements1)
{
$sum1 += $_;
}
foreach (@elements2)
{
$sum2 += $_;
}
$moyLongSeg1=$sum1/2;
$moyLongSeg2=$sum2/2;
closedir DIR; |
Tous les fichiers ont le même contenu suivant:
champs1 (champs6 donnee_o donnee_f) [(champs2 [] (champs3 _YOJNJeyyyyyyB (champs4 donnee_x)) (debut 144825 25345) (fin 244102 40647)), (champs2 [] (champs3 _FuGNJeyyyyyyB (champs4 donnee_z)) (debut 796443 190570) (fin 145247 42663))] [] []).
Partager