3
我正試圖解析MediaWiki's API輸出與format=yaml
。我YAML代碼看起來是這樣的:如何迭代嵌套數據結構中的數組?
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;
這是罰款和花花公子,但你怎麼到超過不野蠻的YAML輸出迫使它遍歷?這將是想法,但顯然這是行不通的。
my $id = $yaml_hash->{query}->{namespaces}-[*]->{id}
這是YAML output的樣子:
---
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
地圖功能像冠軍一樣工作,感謝您的快速響應! – kSiR 2011-04-02 22:19:55
太棒了,祝你好運! – Paul 2011-04-02 22:22:53
因此,只有在perl上進一步完善我自己的教育,是地圖函數提供$ _給缺乏更好的術語「內部循環」的內部地圖基於id值是從 - > {query} - > {命名空間}? – kSiR 2011-04-02 22:32:09