Как получить значения ключей в хеш хэш в Perl? Я попытался использовать функцию клавиш. Я хотел удалить дубликаты, а затем отсортировать их, что я мог бы сделать с использованием функций uniq
и sort
. Я что-то пропустил?Perl - извлекать значения из хэша хэшей
#!/usr/bin/perl
use warnings;
use strict;
sub ids {
my ($data) = @_;
my @allID = keys %{$data};
my @unique = uniq @allID;
foreach (@unique) {
@allUniqueID = $_;
}
my @result = sort{$a<=>$b}(@allUniqueId);
return @result;
}
my $data = {
'first' => {
'second' => {
'third1' => [
{ id => 44, name => 'a', value => 'aa' },
{ id => 48, name => 'b', value => 'bb' },
{ id => 100, name => 'c', value => 'cc' }
],
id => 19
},
'third2' => [
{ id => 199, data => 'dd' },
{ id => 40, data => 'ee' },
{ id => 100, data => { name => 'f', value => 'ff' } }
],
id => 55
},
id => 1
};
# should print “1, 19, 40, 44, 48, 55, 100, 199”
print join(', ', ids($data)) . "\n";
Я знаю, что это неполное, но я не уверен, как действовать дальше. Любая помощь будет оценена по достоинству.
Uniq был построен в функции, которую я использовал. – abc
'uniq' находится в [' List :: Util'] (https://metacpan.org/module/List::Util) – Borodin