Исправление Olegymous, (текущая версия) :
сознательное ССЗБ
В реальности код был подобного рода
my $hashref = {...};
for my $var ( $arrayref_of_hashrefs ) {
my %hash = (
# тут пару десятков ключей заполняется как из $hashref, так и из $var
# обращаясь к разным уровням вложенности $hashref и $var
);
}
Была получена ошибка Not a hash reference
. Учитывая обилие ключей в %hash
и обращение к разному уровню вложенности при обращении к двум переменным было совершенно неочевидно где именно проблема.
По итогу выяснилось, что автор забыл разыменовать $arrayref_of_hashrefs
.
for my $var ( @$arrayref_of_hashrefs ) {
Исправление Olegymous, :
сознательное ССЗБ
В реальности код был подобного рода
my $hashref = {...};
for my $var ( $arrayref_of_hashrefs ) {
my %hash = (
# тут пару десятков ключей заполняется как из $hashref, так и из $var
# обращаясь к разным уровням вложенности $hashref и $var
);
}
Была получена ошибка Not a hash reference
. Учитывая обилие ключей в %hash
и обращение к разному уровню вложенности при обращении к двум переменным было совершенно неочевидно где именно проблема.
По итогу выяснилось, что автор забыл разыменовать $arrayref_of_hashrefs
.
for my $var ( @$arrayref_of_hashrefs ) {
Исходная версия Olegymous, :
В реальности код был подобного рода
my $hashref = {...};
for my $var ( $arrayref_of_hashrefs ) {
my %hash = (
# тут пару десятков ключей заполняется как из $hashref, так и из $var
# обращаясь к разным уровням вложенности $hashref и $var
);
}
Была получена ошибка Not a hash reference
. Учитывая обилие ключей в %hash
и обращение к разному уровню вложенности при обращении к двум переменным было совершенно неочевидно где именно проблема.
По итогу выяснилось, что автор забыл разыменовать $arrayref_of_hashrefs
.
for my $var ( @$arrayref_of_hashrefs ) {