В настоящее время я экспериментирую с вложенными структурами данных в Perl. Предположим, у меня есть хэш массива хешей, и я хотел бы получить значения, отсортированные по ключам в алфавитном порядке. Как мне это сделать?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 "\[email protected]\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
прогностического вперед к вашей помощи. Спасибо.
Сортированы все три ключей? Или просто конкретный? – Sobrique
['$ Data :: Dumper :: Sortkeys = 1'] (https://metacpan.org/pod/Data::Dumper#Configuration-Variables-or-Methods) – mob