Это из памяти и просто рифф, так что считайте его непроверенным. Это простой способ автоматически перебирать столбцы и записи.
Предполагается, что подпрограмма похожа на модель DBIx :: Class -
sub some_action : Local Args(0) {
my ( $self, $c ) = @_;
my $rs = $c->model("SomeTable")->search({},{rows => 10});
$c->stash( some_rs => $rs );
}
А затем соответствующий шаблон -
[% records = some_rs.all %]
[% RETURN UNLESS records.size %]
[% columns = records.0.columns %]
<table>
<tr>
[% FOR column IN columns %]
<th>[% column | ucfirst | html %]</th>
[% END %]
</tr>
[% FOR item IN records %]
<tr>
[% FOR column IN columns %]
<td>[% item.${column} | html %]</td>
[% END %]
</tr>
[% END %]
</table>