Tu as trois problèmes à gérer : les références, la gestion des types de base PERL (hâchages, tableaux, scalaires, ...), et l'imbrication de tout ça.
Tout d'abord, de la documentation :
Types de base : http://perldoc.perl.org/perldata.html
Références : http://perldoc.perl.org/perlref.html
Je vais ensuite expliquer pour ton cas précis, mais tu devrais lire ces deux pages, en entier, et souvent t'y référer. J'y ai moi aussi recours, souvent, parce que ce n'est parfois pas intuitif.
Quoiqu'il en soit, ta variable $VAR1 est une référence de hâchage de tableau de hâchages.
Si, si.
Tout d'abord, pour accéder à quoique ce soit dans tes références, tu vas devoir déréférencer en indiquant le type.
Par exemple, pour accéder à la liste des clefs de hâchage contenus dans $VAR1 :
print "$_\n" foreach keys %{ $VAR1 }; |
Ici, par l'utilisation de la syntaxe "%{ }", j'ai indiqué à l'interpréteur PERL que $VAR1 était une référence de hâchage.
J'ai obtenu "table" en réponse, parce que c'est la seule clef contenue dans ce hâchage.
Ensuite, pour connaître le nombre d'éléments contenus dans le tableau pointé par la clef de hâchage "table" :
print "Nombre d'éléments de la section 'table' : ", scalar(@{ $VAR1->{table} }), "\n"; |
Là, j'ai accédé au contenu de ma clef de hâchage en déréférençant $VAR1 vers la clef "table".
J'ai ensuite déréférencé mon résultat, avec @{}, pour indiquer qu'il s'agit d'une référence de tableau.
Et, puisque tu as lu le premier lien que j'ai posté, tu sais qu'un tableau en contexte scalaire retourne le nombre d'éléments qu'il contient, j'ai donc forcé le contexte avec scalar().
Enfin, pour exemple, je vais imprimer la liste des clefs de hâchage contenu en première position du tableau obtenu :
print "Clefs du premier élément du tableau : \n";
print "$_\n" foreach keys %{ @{ $VAR1->{table} }[0] }; |
Voila, en très rapide, ce que ça donne.
Mais comme tu peux le voir, il vaut mieux maîtriser les principes de base du langage avant de se lancer dans ce genre de gymnastique. Je ne saurais donc trop te conseiller de zoner à fond le site http://perldoc.perl.org , et d'y revenir souvent y chercher la documentation nécessaire.