【发布时间】:2017-01-19 14:45:37
【问题描述】:
这些天我在 Perl 中试验嵌套数据结构。假设我有散列数组的散列,我想按字母顺序获取按键排序的值。我该怎么做?
代码:
#!/usr/bin/perl
use JSON::XS;
use Data::Dumper;
#use diagnostics;
use warnings;
my $school_data = {'School' => '156', 'Pupils' => [{'Person' => {name => 'Alice', age => 10, pet => 'cat'},'id' => 56},{'Person' => {name => 'John', age => 9, pet => 'dog'},id => 4}]};
print "\$school_data:" . Dumper ($school_data);
my $ref = $school_data->{Pupils};
foreach $pupil (@$ref){
my @temp = sort (values $pupil->{'Person'});
print "\n@temp\n";
}
给我一个输出:
$school_data: $VAR1 = {
'School' => '156',
'Pupils' => [
{
'id' => 56,
'Person' => {
'pet' => 'cat',
'name' => 'Alice',
'age' => 10
}
},
{
'Person' => {
'age' => 9,
'name' => 'John',
'pet' => 'dog'
},
'id' => 4
}
]
};
10 Alice cat
9 John dog
我希望得到按字母顺序(宠物名年龄)键排序的值:
cat Alice 10
dog John 9
期待您的帮助。谢谢。
【问题讨论】:
-
按所有三个键排序?还是只是一个特定的?