У меня большой многомерный хеш, который является импортом структуры JSON.
my %bighash;
В% bighash есть элемент с именем:
$bighash{'core'}{'dates'}{'year'} = 2019.
У меня естьотдельная строковая переменная с именем core.dates.year, которую я хотел бы использовать для извлечения 2019 из% bighash.
Я написал этот код:
my @keys = split(/\./, 'core.dates.year');
my %hash = ();
my $hash_ref = \%hash;
for my $key ( @keys ){
$hash_ref->{$key} = {};
$hash_ref = $hash_ref->{$key};
}
, который при выполнении:
say Dumper \%hash;
выходы:
$VAR1 = {
'core' => {
'dates' => {
'year' => {}
}
}
};
Пока все хорошо.Но теперь я хочу сказать:
print $bighash{\%hash};
Что я хочу вернуть 2019. Но ничего не возвращается, или я вижу ошибку об «Использование неинициализированного значения в% bighash в конкатенации (.) или строка в script.pl, строка 1371, строка 17 (# 1) ...
Может ли кто-нибудь указать мне на то, что происходит?
Мой проект предусматривает встраивание строк во внешнийфайл, который затем заменяется фактическими значениями из% bighash, так что это просто интерполяция строк.
Спасибо!