Je besoin de faire une programme en perl
salman
-
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21506 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour, je besoin d' ecrire un programme en perl sous linux qui compte les mots se trouvant dans un fichier dont le nom est passé en argument au programme.
sincerement merci.
sincerement merci.
Configuration: Linux Firefox 3.0
17 réponses
-
Salut, tu as des bases en perl? Car nous on veut bien te donner des pistes, mais on va pas te faire un code tout beau tout propre! ;-)
-
nom je viens de debut perl et j'avais des retards par rapport au autres etudiant ,donc je voulai vraiment que vous m'aidiez merci;
-
Bah fait un peu de recherches, nous on ne te donnera que des pistes. A toi de faire le travail ;-)
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Donc. Ton programme comportera déjà:
#! /usr/bin/perl
En première ligne. C'est l'interpréteur, pour éviter de toujours taper "perl monfichier.pl". Ensuite, l'extension sera ".pl". POur finir, tu auras sans doute quelque chose de ce genre pour commencer:
#! /usr/bin/perl chomp(my $mot=<STDIN>) ; #pour lire le mot donné en argument.
Je précise qu'après le # ce sont des commentaires, tu n'es pas obligé de les mettre dans ton programme. -
il m'affiche cette erreur quand j tape chomp(my $mot=<STDIN>) ; et que je touche rentrer s'il vous plait pouvez vous m'aider
bash: syntax error near unexpected token `my' -
Salut,
En première ligne. C'est l'interpréteur, pour éviter de toujours taper "perl monfichier.pl".
Il faut s'assurer qu'il y a les droit d'exécutions sur le fichier sinon, malgré le shebang on sera obliger de faire perl monfichier.pl
chomp(my $mot=<STDIN>) ; #pour lire le mot donné en argument.
Ben, non.
STDIN lit depuis l'entrée standardmy $mot; chomp($mot = <STDIN>);
Les arguments du script on les trouves dans @ARGV
-
je creer creer un fichier dans mon bureau et je faite une programme qui peut ouvrir se fichier la voila
#! /usr/bin/perl
open (LEC , "<"test.txt");
whyle ($ ligne =<LEC>)
print $_;
}
j'ai enregistrer sous mot.pl sur mon bureau
comment pourai-je l'execute et voir si il marche ou pas je travail sous linux et je tape mon code sur l'editeur de texte.pouvez vous m'aide d'execute et de me corriger si il ya des erreur.
et je voulai compter les mots qui se trouve dans se fichier -
Il faut que tu fasses: chmod +x monfichier.pl puis après, que tu te place dans le dossier et que tu tapes ./monfichier.pl pour le lancer ;-)
-
enfai moi je enregistrer mon code mot.pl
et si je fai chmod +x mo.pl
il m'affiche sa
chmod: ne peut accéder `mot.pl': Aucun fichier ou répertoire de ce type -
Fais cd ~/Bureau puis chmod +x fichier.pl ;-))
-
Re,
Tu as des erreurs dans ton script (j'ai ajouté une gestion d'erreur au cas où)
Il n'y a pas d'espace entre $ et ligne
Si tu utilise la variable $ligne tu dois faire print $ligne pas print $_#! /usr/bin/perl open LEC , "<test.txt" or die "E/S : $!\n"; while ($ligne =<LEC>) print $ligne; }
--
106485010510997108 -
Re,
Pour compter les mots il faut savoir la structure de ton fichier.
Quel caractère veux tu utiliser pour séparer les mots?
-
-
Re,
Ca ne marche pas comme ça ;-)
Essaie (je n'ai pas testé)
#! /usr/bin/perl use strict;use warnings; open LEC , "<test.txt" or die "E/S : $!\n"; my $compteur; while (my $ligne =<LEC>) { my @mots; next if /^$/; @mots=split /\s+/, $ligne; $compteur += scalar @mots ; } print "Le fichier a $compteur mot(s)\n"; __END__
Pour exécuter : perl script.pl fichier -
j arrive pa a excecute le programme svp.j ai enregistrer un dossier dans mon bureau mai iln m'affiche une ereur comme ce si bash: chomp: command not found
#! /usr/bin/perl
use strict;use warnings;
open LEC , "<test.txt" or die "E/S : $!\n";
my $compteur;
while (my $ligne =<LEC>) {
my @mots;
next if /^$/;
@mots=split /\s+/, $ligne;
$compteur += scalar @mots ;
}
print "Le fichier a $compteur mot(s)\n";
__END__ -
Re,
Il n'y a pas de chomp dans mon code.
Fait un copier / coller de ce que tu vois à l'écran puisque je ne comprends pas où est ton problème