Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1411 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Aide pour logique en POO

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Aide pour logique en POO

n°706622
burgergold
5$? va chez l'diable!
Posté le 23-04-2004 à 00:52:54  profilanswer
 

Je désire faire une classe pour consulter le fichier /etc/passwd
 
grâce à celui-ci, je pourrais utiliser les méthodes suivantes:

  • uid_to_username($uid)
  • username_to_uid($username)


pas plus pour commencer
 
chacune des lignes du fichiercontient les éléments suivants:

  • username
  • uid
  • gid
  • description
  • home
  • shell


donc ca devrait ressembler à quelque chose comme ca:
 

Code :
  1. sub uid_to_username {
  2.   my $self = shift;
  3.   my $uid  = shift;
  4.   foreach ($self->lines) {
  5.     if ($_->uid eq $uid) {
  6.       return $_->username;
  7.     }
  8.   }
  9. }


 
mais voila, dans cette optique, une ligne se doit aussi d'être un objet, et j'ai donc besoin d'une classe Etc::Passwd::Entry
 
selon vous, vaut mieux faire un package pour "le fichier" et un pour "une entry" ou tout foutre dans le package principal? si c'est la dernière réponse, comment vous vous y prendriez
 
merci


---------------
http://www.boincstats.com/signature/user_664861.gif
mood
Publicité
Posté le 23-04-2004 à 00:52:54  profilanswer
 

n°706623
Taz
bisounours-codeur
Posté le 23-04-2004 à 01:02:22  profilanswer
 

aucune.
 
ta classe ça peut être un singleton
 
et quand tu construits une instances, tu lis /etc/passwd, tu découpe par lignes, et tu mets chaque lignes dans un dictionnaire et voilà. pas la peine de rajouter une classe pour pas grand chose.

n°706626
burgergold
5$? va chez l'diable!
Posté le 23-04-2004 à 01:07:15  profilanswer
 

bin l'idée général, c'est d'avoir un package (une classe quoi), qui sera dans une librairie commune pour la plupart de mes scripts, dans lesquels je pourrais faire appel à ce package (classe) lorsque j'en aurais besoin


---------------
http://www.boincstats.com/signature/user_664861.gif
n°706628
burgergold
5$? va chez l'diable!
Posté le 23-04-2004 à 01:17:16  profilanswer
 

bon disons qu'on reprend de cette facon
 
j'ai un package (mais pas classe) nommé Etc::Passwd
 

Code :
  1. package Etc::Passwd;
  2. use strict;
  3. use Bromont::File; # Package qui me permet divers trucs sur les fichiers; les acls, lire le fichier en retirant les lignes vides et commentaires, etc...
  4. my $file = new Bromont::File("/etc/passwd" );
  5. sub uid_to_username {
  6.   my $uid  = shift;
  7.   foreach ($file->lines) {
  8.     my $entry = new Etc::Passwd::Entry($_);
  9.     if ($entry->uid eq $uid) {
  10.       return $entry->username;
  11.     }
  12.   }
  13. }


 
c'est pas bien de me créer un package (classe dans ce cas) pour traiter une ligne de mon fichier? jsuis mieux de simplement me faire des subroutines dans le package Etc::Passwd?


---------------
http://www.boincstats.com/signature/user_664861.gif
n°706940
burgergold
5$? va chez l'diable!
Posté le 23-04-2004 à 12:01:15  profilanswer
 
n°707860
pospos
Posté le 24-04-2004 à 22:17:17  profilanswer
 

pourkoi tu veux faire un truc objet?
Tu pense que tu aura besoibn de plusieurs instance de cette classe? et tu pense que c'est vraiment utilise de faire de chaque ligne une instance d'une classe ...::Entry ?
 
Tu peux faire un package bien réutilisable et simple pour ce que tu veux faire sans faire de OO

n°707885
burgergold
5$? va chez l'diable!
Posté le 25-04-2004 à 01:20:06  profilanswer
 

pospos a écrit :

pourkoi tu veux faire un truc objet?
Tu pense que tu aura besoibn de plusieurs instance de cette classe? et tu pense que c'est vraiment utilise de faire de chaque ligne une instance d'une classe ...::Entry ?
 
Tu peux faire un package bien réutilisable et simple pour ce que tu veux faire sans faire de OO


 
ouais bin je l'ai fait sans OO finalement, j'ai trouvé une Unix-ConfigFile dans lequel ca traite Passwd et Group alors jfais que le réutiliser pour faire du uid_to_name et ainsi de suite


---------------
http://www.boincstats.com/signature/user_664861.gif

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Aide pour logique en POO

 

Sujets relatifs
besoin d'aide pour la fonction socket probleme avec free[Perl] Arrêter un programme proprement lors d'un Ctrl + C
aide Visual basic 6.0: instruction shell??[BATCH] aide script
[AIDE] Quel language ?Vérif de la présence des process à l'aide d'1 script.
afficher une image par lien !! aide pleaseA l'aide inclusion de fichier
aide pour un projet d'agenda en pascal[ Merise ] Aide au MCT [ Edit MCT --> Act 3 ]
Plus de sujets relatifs à : [Perl] Aide pour logique en POO


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR