Programme perl
dragnyon
-
-
-
Bonjour,
j'aurais besoin de votre aide pour mon projet en perl (vous pouvez voir le sujet et les programme que j'ai fais ici https://transfernow.net/02bfp7o17g7c ), j'ai réussi à faire le exo1.pl mais je bloque pour le exo2.pl le programme me donne page22.html, 624 alors que je devrai trouvé page22.html 201 je travail depuis des heures dessus sans trouver la solutions
merci d'avance de votre aide.
j'aurais besoin de votre aide pour mon projet en perl (vous pouvez voir le sujet et les programme que j'ai fais ici https://transfernow.net/02bfp7o17g7c ), j'ai réussi à faire le exo1.pl mais je bloque pour le exo2.pl le programme me donne page22.html, 624 alors que je devrai trouvé page22.html 201 je travail depuis des heures dessus sans trouver la solutions
merci d'avance de votre aide.
A voir également:
- Programme perl
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
4 réponses
Salut dragnyon,
Si tu veux de meilleures chances de recevoir de l'aide rapidement, il faut faciliter la vie aux membres du forum, au lieu de renvoyer vers une archive en ligne avec près d'une 30aine de fichiers, sans explications sur ce que le code est sensé faire et avec quoi.
A l'avenir, poste un code minimal exploitable avec des données de test illustrant ton problème, au lieu de contraindre le lecteur, qui n'a peut être pas le temps, ni la motivation, d'aller à la pêche aux informations.
Alors, après avoir fait un peu d'exploration, voilà le code que tu as rédigé pour ton exo2.pl :
Ton indentation n'est pas claire, mais, en l'occurrence, l'un des problèmes avec ton script exo2.pl est que tu cherches la présence des balises title et href à l'intérieur des lignes matchant la première expression. Du coup, par exemple, tu comptabilises des occurrences de lignes matchant la première expression et où il y a un lien sur une ligne mais où le mot clef ne se trouve pas à l'intérieur de la balise href.
Tu dois donc faire 2 passes (tu devrais faire 2 boucles, en mettant le contenu du fichier dans un tableau, afin d'éviter d'avoir à faire 2 lectures du fichier, ainsi tu ferais deux boucles foreach sur le tableau).
Tes expressions rationnelles sont également fausses et devraient être
Dal
Si tu veux de meilleures chances de recevoir de l'aide rapidement, il faut faciliter la vie aux membres du forum, au lieu de renvoyer vers une archive en ligne avec près d'une 30aine de fichiers, sans explications sur ce que le code est sensé faire et avec quoi.
A l'avenir, poste un code minimal exploitable avec des données de test illustrant ton problème, au lieu de contraindre le lecteur, qui n'a peut être pas le temps, ni la motivation, d'aller à la pêche aux informations.
Alors, après avoir fait un peu d'exploration, voilà le code que tu as rédigé pour ton exo2.pl :
#! /usr/bin/perl use strict; use warnings; { my ($fich, $mot) = @ARGV; my $ligne; my $lec; my $nb=0; my $nbmot=0; open ($lec,"<",$fich) or die "erreur sur $fich"; while (<$lec>) { $ligne=$_; if ($ligne=~ m/[ >]$mot[s]?[ \.\;\,\:<]/i) {$nb++; if($ligne=~ m/[<title<|<\/title>]/) {$nb=$nb+3; } if($ligne=~ m/href/) {$nb=$nb+2; } } } close($lec); print "$fich, $nb"; }
Ton indentation n'est pas claire, mais, en l'occurrence, l'un des problèmes avec ton script exo2.pl est que tu cherches la présence des balises title et href à l'intérieur des lignes matchant la première expression. Du coup, par exemple, tu comptabilises des occurrences de lignes matchant la première expression et où il y a un lien sur une ligne mais où le mot clef ne se trouve pas à l'intérieur de la balise href.
Tu dois donc faire 2 passes (tu devrais faire 2 boucles, en mettant le contenu du fichier dans un tableau, afin d'éviter d'avoir à faire 2 lectures du fichier, ainsi tu ferais deux boucles foreach sur le tableau).
Tes expressions rationnelles sont également fausses et devraient être
m/<title>.*?$mot[s]?.*?<\/title>/iet
m/href=".*?$mot[s]?.*?"/i...
Dal