Я пытаюсь создать хэш хэша - глубина вложенности зависит от количества аргументов, переданных в массив @aGroupByFields
.
В приведенной ниже реализации я получаю желаемую хэш-структуру. Но я жестко запрограммировал поля [ пример - $phBugRecord->{createdBy}
] вместо того, чтобы получать их из массива.
Я не уверен, как динамически создать это.
my (@aGroupByFields) = ['createdBy','status','devPriority'];
# In real case,these are passed in as arguments
my (%hTemp);
# This is the final hash which will be structured according to above fields
# %hBugDetails is the hash containing details of all bugs
foreach my $phBugRecord ( @{ $hBugDetails{records} } ) {
# The below statement needs to be generated dynamically as
# opposed to the hard-coded values.
push(
@{
$hTemp{ $phBugRecord->{createdBy} }{ $phBugRecord->{status} }
{ $phBugRecord->{devPriority} }
},
$phBugRecord
);
}
Любой указатель будет большим подспорьем. Спасибо.
Data::Diver
иDeep::Hash::Utils
- person Håkon Hægland   schedule 16.03.2016