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 :

tableaux et reference encore


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Par défaut tableaux et reference encore
    bonjour, j'espère que ça va.
    je me suis encore perdu dans les références
    voilà une classe moose que j'essaie de construire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    package Memoire_date;
    #moose/Memoire_date.pm
    use Moose;
    use Data::Dumper;
    ##############################################################
    has 'tab_temps' => (
    isa     => 'ArrayRef',
    is  => 'rw',
    #lazy    => 1,
    #default => 'inconnu'
    default => sub { return []; }
    );
    ##############################################################
    ##############################################################
    has 'tab_new' => (
    isa     => 'ArrayRef',
    is  => 'rw',
    #lazy    => 1,
    #default => 'inconnu'
    default => sub { return []; }
    );
    ##############################################################
    sub set_date {
    	my $self = shift;
    	#my $date = shift;
    	my $date = 'date';
    	my @tab  = $self->tab_temps; 
    	my $longtab = @{$tab[0]};
    	my @new_tab  = $self->tab_new; 
    	my $longtabnew = @{$new_tab[0]};
    #si tabnew deja rempli je le pousse dans tab temps
    if ($longtabnew > 0) {
    	# body...
     
    my @temp = ${self}->tab_new;
    push ${self}->tab_temps, [@temp];
    print "ici tob", Dumper(${self}->tab_temps);
    #je réinitialise 
    print 'long tab ', $longtabnew;
    $self->tab_new([]);
    }
    #j'inscrit la date
    $self->tab_new->[0]->[0]= $date;
    print "\n new est ", $self->tab_new->[0]->[0];
    #print "\n new est ",${self}->tab_temps->[0]->[0]->[0]->[0];
     
    }
    ##############################################################
    no Moose;
    __PACKAGE__->meta->make_immutable;
    ce qui me donne
    ici tob$VAR1 = [
    [
    [
    [
    'date'
    ]
    ]
    ],
    [
    [
    [
    'date'
    ]
    ]
    ],
    [
    [
    [
    'date'
    ]
    ]
    ],

    etc .. dejà ça fait beaucoup de crochets
    mais ensuite si j'essaye d'acceder à mes valeurs en faisant je l'avoue n'importe quoi comme par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print "\n resultat est ",${self}->tab_temps->[0]->[0]->[0]->[0];
    non seulement je n'y arrive pas mais en plus de nouveaux tableaux se créent tous seul par autovivification.
    comme ça

    ici tob$VAR1 = [
    [
    [
    []
    ]
    ],
    [
    [
    [
    'date'
    ]
    ]
    ],
    [
    [
    [
    'date'
    ]
    ]
    ],
    [
    [
    [
    'date'
    ]
    ]
    ],

    Si vous voyez le problème ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Par défaut
    C'est toujours pareil, on comprend mieux une fois qu'on a formulé la question
    comme ça , ca fonctionne
    en fait le print était posé alors que le tableau était encore vide. et c'est pourquoi un nouveau tableau non désiré était crée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    package Memoire_date;
    #moose/Memoire_date.pm
    use Moose;
    use Data::Dumper;
    ##############################################################
    has 'tab_temps' => (
    isa     => 'ArrayRef',
    is  => 'rw',
    #lazy    => 1,
    #default => 'inconnu'
    default => sub { return []; }
    );
    ##############################################################
    ##############################################################
    has 'tab_new' => (
    isa     => 'ArrayRef',
    is  => 'rw',
    default => sub { return []; }
    );
    ##############################################################
    sub set_date {
    	my $self = shift;
    	#my $date = shift;
    	my $date = 'date';
    	my @tab  = $self->tab_temps; 
    	my $longtab = @{$tab[0]};
    	my @new_tab  = $self->tab_new; 
    	my $longtabnew = @{$new_tab[0]};
    #si tabnew deja rempli je le pousse dans tab temps
    if ($longtabnew > 0) {
    	# body...
     
    my @temp = ${self}->tab_new;
    push ${self}->tab_temps, [@temp];
    #je réinitialise 
    print 'long tab ', $longtabnew;
    $self->tab_new([]);
    #comme ça, ça fonctionne.
    print "\n ancien est ",${self}->tab_temps->[0]->[0]->[0]->[0];
    }
    #j'inscrit la date
    $self->tab_new->[0]->[0]= $date;
    print "\n new est ", $self->tab_new->[0]->[0];
     
    }
    ##############################################################
    no Moose;
    __PACKAGE__->meta->make_immutable;

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    j'aurais eu du mal à trouver
    Tu fais du LISB* en PERL ?

    *(List of Insipid and Stupid Brackets)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 124
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    j'aurais eu du mal à trouver
    Tu fais du LISB* en PERL ?

    *(List of Insipid and Stupid Brackets)
    ben je sais pas trop ce que c'est que le lisb, mais vu comme tu'l dis ça doit être chouette...

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Billets dans le blog
    1
    Par défaut
    Moi, je connaissais le langage LISP (lots of insipid and stupid parentheses).


    Ça me rappelle un type qui se vantait sur un forum d'avoir réussi à pénétrer les ordinateurs du Pentagone et à dérober le programme LISP de la guerre des étoiles. Pour le prouver, il fournissait la dernière page de code:







    Voir ci-dessous:








    Plus bas:








    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
    )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Mon "LISB" n'existe pas... c'était une blague qui faisait référence à LISP (langage de programme nommé à partie de "list processing") dont l'acronyme a effectivement été retraduit, et dont j'avais en mémoire la version apprise à l'école "List of Insipid and Stupid Parenthesis". Il semble en fait que "List" est à remplacer par "Lots" (ou remplacer "List of" par "Lost in").

    Mais comme l'a énoncé Lolo, il y a d'autres acronymes, et Wikipedia en donne encore un autre :
    Les listes sont délimitées par des parenthèses et leurs éléments sont séparés par des espaces : (1 2 "foo"). Un programme Lisp est un arbre de syntaxe composé avec des listes. Cette utilisation des parenthèses donne lieu à des moqueries sur le nom de LISP : « Lots of Irritating and Silly Parentheses » (« Des tas de parenthèses irritantes et idiotes »), ou « Lots of Insipid and Stupid Parentheses » (« Des tas de parenthèses insipides et stupides »).
    Nostalgie...

Discussions similaires

  1. Encore un problème avec les tableaux
    Par george216 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 13
    Dernier message: 18/05/2009, 17h21
  2. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  3. reference sur des tableaux ?
    Par myriamulrik dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 1
    Dernier message: 04/12/2008, 14h17
  4. [Tableaux] encore une erreur du au changement
    Par cyrill.gremaud dans le forum Langage
    Réponses: 17
    Dernier message: 15/06/2006, 09h47
  5. Les tableaux en PL/SQL
    Par GRUMLY dans le forum PL/SQL
    Réponses: 5
    Dernier message: 12/08/2002, 18h10

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