Forum Programmation.perl Tableau de hash, comment connaitre ça taille.

Posté par  .
Étiquettes : aucune
0
23
mar.
2006
bonjour,

Avec la bibliotheque XML::Simple, quand je parse mon fichier,
j'obtient un tableau de hash...

@int = $fichier->{int};

print Data::Dumper->Dump([\@int],['*int']);

@int = (
[
{
'type' => 'vl1',
'mib' => '1',
'descr' => {}
},
{
'type' => 'fa0/1',
'mib' => '2',
'descr' => 'deck'
},
{
'type' => 'fa0/2',
'mib' => '3',
'descr' => 'deck2'
},
{
'type' => 'fa0/3',
'mib' => '4',
'descr' => ' user440 '
},
{
'type' => 'fa0/4',
'mib' => '5',
'descr' => 'same-as-you'
},
{
'type' => 'fa0/5',
'mib' => '6',
'descr' => 'deck440'
},
{
'type' => 'fa0/6',
'mib' => '7',
'descr' => {}
},
]
);

Je ne sais pas, et je trouve pas, comment savoir, pour ce genre
de tableau, comment savoir quelle est sa taille...


Merci d'avance...!
  • # revoir l'utilisation des hachages

    Posté par  . Évalué à 2.

    perldoc -f keys
    • [^] # je me corrige

      Posté par  . Évalué à 2.

      comme ce n'est pas un hachage mais une liste de références de listes de hashage (sic),
      on obtient la taille de la 1ere liste référencée dans la liste (resic) avec:

      $#{$int[0]}
      • [^] # Re: je me recorrige

        Posté par  . Évalué à 2.

        oui on rajoute 1 car c'est le dernier indice qui est retourné
        scalar($#{$int[0]})+1;
      • [^] # Re: je me corrige

        Posté par  . Évalué à 2.

        Super, ça marche...!
        Par contre, pourquoi ça me mets, la taile de la 1ere liste référencée
        dans la liste, mais -1, par exemple, si j'ai 49 ligne, il m'affiche 48...?

        encore une fois merci, je debutte en perl (depuis 2 mois quand même),
        et je m'embrouille un peu (!) avec les liste de reference de liste de hash de reference etc... 8D.
    • [^] # Re: revoir l'utilisation des hachages

      Posté par  (site web personnel) . Évalué à 2.

      tout à fai :) grace à keys tu recois un tableau des clé de ton Hash, ensuite, tu récupère la taille de ton tableau ...
      donc un truc du style :
      my $taille=keys(%monHash);

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.