Je besoin de faire une programme en perl

salman -  
lami20j Messages postés 21331 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.

17 réponses

Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
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! ;-)
0
Utilisateur anonyme
 
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;
0
Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
Bah fait un peu de recherches, nous on ne te donnera que des pistes. A toi de faire le travail ;-)
0
Utilisateur anonyme
 
oki donne moi des piste ou des astuces a suivre pour faire sa sous linux
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
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.
0
Utilisateur anonyme
 
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'
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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 standard
my $mot;
chomp($mot = <STDIN>);


Les arguments du script on les trouves dans @ARGV

0
Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
Merci de la correction Lami20j ;-)
0
Utilisateur anonyme
 
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
0
Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
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 ;-)
0
Utilisateur anonyme
 
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
0
Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
Fais cd ~/Bureau puis chmod +x fichier.pl ;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

Pour compter les mots il faut savoir la structure de ton fichier.
Quel caractère veux tu utiliser pour séparer les mots?
0
Utilisateur anonyme
 
j utilise un espace pour separer mes mots
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
0
Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention   510
 
Salut, j'ai testé, cela renvoie:

E/S : Aucun fichier ou dossier de ce type

;-)
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570 > Kharec Messages postés 4146 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re,

Ben, il suffit de créer un fichier que tu l'appelles fichier et dédans tu écrit quelque mots separés par des espaces.
0
Utilisateur anonyme
 
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__
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
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
0