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 :

Créer un nom de @list dynamiquement


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut Créer un nom de @list dynamiquement
    Bonjour,

    J'effectue ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    for ( $i = 0 ; $i < 5 ; $i++ ) {
     
     
     
        @recupList{$i} = @list;
     
     
     
     
    }

    je voudrais donc récupérer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      @recupList0
      @recupList1
      @recupList2
      @recupList3
      @recupList4
    Mais cela ne fonctionne pas, j'ai beau chercher

    j'ai bien trouvé avec les variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $var = "recupList$i";
     
    $$var = @list
    mais cela reste une variable, mais j'ai besoin d'une liste.


    Merci de votre aide.

    MaitrePylos.

  2. #2
    Expert confirmé
    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
    Par défaut
    Ne fais pas ça !! Les variables symboliques sont le mal(TM), elles mangent ton cerveau au ptit déj' !
    Plus sérieusement, utiliser les variables symboliques est vraiment une très mauvaise idée, tu t'exposes à plein de petits dangers, très difficiles à déboguer quand tu as la malchance de faire une erreur (utilises tu "strict" et as-tu lu notre section sur le style en Perl au fait ?).
    D'autant que c'est parfaitement inutile en Perl, avec les structures de données complexes, par exemple dans ton cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ( $i = 0 ; $i < 5 ; $i++ ) {
       $recupList[$i] = [@list];  
    }
    et plus loin tu peux récupérer la première des liste avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @list = @{$recupList[0]};
    ou consulter un élément directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $snd_elt_from_fst_list = $recupList[0][1];
    Lis la section de notre FAQ sur les références pour plus de détails.

    --
    Jedaï

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Tout d'abord un grand pour toutes l'aide que tu m'apportes.

    Je pense avoir essayer toutes les combinaison possible, et il fallait juste [].

    Pour répondre à tes questions :

    oui, j'utilise le Strict , je pense même que c'est la première chose que j'ai appris avec le shebang.

    Par contre je ne vois pas la section sur le style en Perl, mais bon je suis fatigués.

    Je pense me mettre ce W-K à la Poo en Perl.

    Encore merci de ton aide

    MaitrePylos

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Je reviens avec mes @list dynamique.

    Bon alors je crois que j'ai tout lus, et des fois ça marche, des fois ça marche pas.


    j'essaye de faire un while d'un fichier et de le mettre dans une liste dynamique.

    je fais comme ceci

    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
     
    my $size = \@size;
    my $utilisateur = \@utilisateur;
    my $nomDuFichier = \@nomDuFichier;
    my $dateFichier = \@dateFichier;
    ...
     
    #ici je suis dans une boucle for et j'y fais un while
      while ( my $ligne = <FILE> ) {
                (
                    $droits,   $inode,    $user,     $group, $poids,
                    $dateMois, $dateJour, $dateAnne, $nomFichier
                ) = split /\s+/, $ligne;
     
                push @{$size[$i]} , $poids;
                push @{$utilisateur[$i]}, $user;
                push @{$nomDuFichier[$i]}, $nomFichier,
                push @{$dateFichier[$i]}, $dateMois . "-" . $dateJour . "-" . $dateAnne;
     
                push @recupTableau, $nomFichier;
     
            }
     
     
     
     
    #ensuite je boucle pour avoir le résultats
     
    for ($i = 0; $i < @{$nomDuFichier[0]} ; $i++)
    {
    	print $nomDuFichier[0][$i]."\n";
    }
    j'obtient l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Use of uninitialized value in array dereference at test.pl line 224.
    Use of uninitialized value in numeric lt (<) at test.pl line 224.

    Merci de votre aide.

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Autant pour moi, mon fichier est vide

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

Discussions similaires

  1. créer une liste dynamique
    Par ferhat.adel dans le forum Langage
    Réponses: 7
    Dernier message: 28/04/2011, 09h39
  2. [MySQL] nom des champs dans une liste dynamique
    Par jeinny dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 28/05/2009, 11h06
  3. Réponses: 14
    Dernier message: 27/03/2008, 09h16
  4. Réponses: 2
    Dernier message: 02/04/2007, 09h56
  5. Créer des noms de variables dynamiquement avec JSP
    Par Zakapatul dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2007, 14h24

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