Je tente d'analyser la sortie MediaWiki's API avec format=yaml
. Mon code YAML ressemble à:Comment effectuer une itération sur un tableau dans une structure de données imbriquée?
use YAML qw(Dump Bless Load);
use YAML::LoadURI;
use YAML::Tag;
my $yaml_hash = LoadURI($wiki_url);
my $id = $yaml_hash->{query}->{namespaces}->[0];
print $id;
Ceci est bien beau, mais comment vous itérer sur la sortie YAML sans brute forcer? Ce serait une idée, mais évidemment cela ne marche pas.
my $id = $yaml_hash->{query}->{namespaces}-[*]->{id}
C'est ce que le YAML output ressemble:
---
query:
namespaces:
-
id: -2
case: first-letter
'*': Media
canonical: Media
-
id: -1
case: first-letter
'*': Special
canonical: Special
-
id: 0
case: first-letter
'*':
content:
-
id: 1
case: first-letter
'*': Talk
subpages:
canonical: Talk
-
id: 2
case: first-letter
'*': User
subpages:
canonical: User
-
id: 3
case: first-letter
'*': User talk
subpages:
canonical: User talk
la fonction de la carte a fonctionné comme un champion, merci pour la réponse rapide! – kSiR
super, bonne chance! – Paul
Donc, seulement pour poursuivre mon auto-éducation sur Perl, est la fonction de carte fournissant le $ _ à l'absence de meilleurs termes "boucle interne" à l'intérieur de la carte en fonction de ce que la valeur de l'ID -> {query} -> { espaces de noms}? – kSiR