Это странно:
{ list => \@$names }
$names
- это ссылка на массив.Вы задерживаете его (@$names
), а затем берете другую ссылку на массив разыменования (\@$names
).Вы можете получить точно такой же результат с:
{ list => $names }
Но ничего из этого не решит вашу проблему.Вы вызываете fetchall_arrayref()
, и это возвращает ссылку на массив, где каждый элемент массива является ссылкой на другой массив.По сути, это двумерный массив.Внешний массив предназначен для строк, возвращаемых из запроса к базе данных, а внутренние массивы - для отдельных полей в каждой строке.
Когда вы видите значение типа ARRAY(0x2030674)
, вы должны понимать, что отображаетессылка на массив, и вам нужно сделать еще один уровень разыменования.
Код вашего шаблона должен выглядеть примерно так:
[% FOREACH row IN LIST -%]
<p>Start of new record:</p>
<ul>
[% FOREACH field IN row -%]
<li>[% field %]</li>
[% END -%]
</ul>
[% END %]
Обновление: Вы говорите:
Когда я запускаю, я получаю эту ошибку.
Но там нет ошибок.Это даже не предупреждение.Это просто данные, которые вы не совсем поняли: -)