我想寫一個函數,它會返回任何級別下面的數據結構中所有「id」值的列表,並按數字排序。同樣,如果在數據結構中的多個位置中找到相同的值,則只應將其包含在返回的列表中一次。如何獲取perl數據結構中的所有鍵值?
sub ids {
my ($data) = @_;
# Define this function
}
my $data = {
'top' => {
'window' => {
'elements' => {
{ id => 44, name => 'link', value => 'www.cnn.com' },
{ id => 48, name => 'title', value => 'CNN Home Page' },
{ id => 100, name => 'author', value => 'Admin' }
},
id => 19
},
'cache' => {
{ id => 199, data => '5' },
{ id => 40, data => '9' },
{ id => 100, data => { name => 'author', value => 'Admin' }
}
},
id => 55
},
id => 1
};
# should print 「1, 19, 40, 44, 49, 55, 100, 199」
print join(', ', ids($data)) . 「\n」;
'$ data'不包含有效的Perl數據結構,例如'elements'的值是什麼? –