IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Tableau dans un package


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Tableau dans un package
    Bonjour tout le monde,

    PERL n'est pas vraiment ma tasse de the. Dans le cadre d'un projet dans ma boite je suis amene a devoir y toucher, j'ai donc une question que j'imagine etre relativement evidente pour vous tous.

    Alors voila, je voudrais avoir plusieurs tableaux (les List_patches_xxxx ce-dessous) dans ma classe, mon constructeur ressemble a ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub new {
       my $class = shift;
       my $self = {
          Log   => shift, 
          Machine  => shift, 
          Config  => shift,
          List_patches_to_install => undef, 
          List_patches_installed => undef, 
          List_patches_not_correctly_installed => undef,
       };
       bless $self, $class;
       return $self;
    }
    - Est-ce correcte ?
    - Comment puis faire un push sur ce tableau ensuite ? comme ca : push($self->List_patches_to_install,$temp); ?
    - COmment acceder a la variable de taille de tableau ? sans classe j'aurais fait un $#List_patches_installed, mais la je ne sais pas.

    Merci beaucoup ! et desole pour le manque d'accent mais je suis sur un clavier US.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Tout d'abord, je trouve ton utilisation de shift très contestable ici, il n'y a aucun moyen de regarder simplement ta fonction et de voir l'ordre des arguments, modifier un peu ton code peut suffire à modifier cet ordre, etc... A la place, j'utiliserais plutôt des arguments nommés ou au moins une affectation explicite de @_.

    Par ailleurs ta classe est un hash à la base, donc il se comporte comme une référence de hash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    push @{$self->{List_patches_to_install}}, $temp;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $last_index = $#{$self->{List_patches_to_install}};
    Et puis le nom est beaucoup trop long... Pourquoi "List_" alors que tu dis déjà "patches" (et encore, moi j'abrègerais sans doute à "to_install").

    Il serait également plus clair d'affecter des références de tableaux vide [] à ces clés, plutôt que "undef" (autant ne pas les affecter sinon...).

    --
    Jedaï

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Merci de tes commentaires, je vais prendre tout cela en compte.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ STRUTS ] [ LOGIC:ITERATE ] tableau dans un formulaire
    Par LoulouFifi dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/06/2004, 16h19
  2. Tableau dans une interface idl
    Par Polochon2001 dans le forum CORBA
    Réponses: 2
    Dernier message: 14/05/2004, 09h44
  3. [langage] Tableau dans hashage
    Par iago dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2004, 16h19
  4. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 10h15
  5. Réponses: 2
    Dernier message: 27/05/2002, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo