• [^] # Re: Trouvé

    Posté par . En réponse au message Récupérer les hash dans une liste de hash. Évalué à 3.


    %structvar = {"Type" => renvoiType($typinfo),
    "Valeur" => $valeur};

    push(@TabVars,%structvar);


    Ceci est une horreur, ca "marche" mais ce que tu fais exactement est :

    - Créer un hash structvar, avec un seul element donc la clé est une référence vers un hash anonyme, stringifiée, et la valeur est indéfinie, donc concrement:

    $structvar{'HASH(0x12345678)'} = undef

    - Rajouter ce hash à un tableau, ce qui fait que ton @TabVars contient maintenant : ('HASH(0x12345678)', undef).

    Une référence est une valeur scalaire, donc il faut l'utiliser dans le bon contexte:

    $structvar = { .... };
    push(@TabVars, $structvar);

    foreach my $ref (@TabVars) {...}

    Je ne suis pas sur de la doc sur laquelle tu t'as basé, mais utilise plutot:
    perldoc perlref
    perldoc perlreftut
    perldoc perldsc
    perldoc perllol

    Tout y est, sans erreur :)