Это одна проблема:
$response->{rows}->[id]
В этой фразе вы берете хеш-код ($response
), обращаетесь к его хеш-ключу "rows
", а затем получаете доступ к анонимному массиву, указанному $response->{rows}
. Пока все хорошо, но анонимный массив не может иметь элемент с именем 'id
', если только 'id
' не определен где-то как константа, которую я не вижу нигде в опубликованном вами коде. Скорее всего, вы имеете в виду «$response->{rows}{id}
». Другими словами, хэш хэшей. Обратите внимание, что оператор ->
является избыточным при расположении между индексами, поэтому я удалил его.
Однако вы упомянули в своем посте, что вам нужен хэш массивов. Но это должно было бы выглядеть как $response->{rows}[0]
.
Одна вещь, которую я иногда нахожу полезной, это просто использовать Data :: Dumper, чтобы вывести возвращаемое значение fetchrow_hashref, чтобы посмотреть, как это выглядит. Возможно, у вас уже есть представление об этом, но иногда, рассматривая его как структуру данных, вы сможете лучше визуализировать, как следует перестроить структуру данных в соответствии с требованиями проекта.