Wie macht ihr das?
Code und Template sauber trennen:
$self->{STASH}{adressen} = $DBH->selectall_arrayref(q(
select
name,
vname,
ort
from
adressen
where
ort = 'Gotha'
), { Slice => {} });
%loop_adressen%
<tr>
<td> %name% </td>
<td> %vname% </td>
<td> %ort% </td>
</tr>
%endloop%
und damit das was mit einer Factory zu tun haben soll, wird die DBHandler--Methode $DBH->selectall_arrayref() zu einer eigenen Methode gemacht und nicht über den Handler $DBH aufgerufen sondern über die eigene Instanz $self->adressen_from('Gotha');
Erst in der im Sinne eine Factory ausgelagerten Methode wird die DBI-Library geladen und das DBHandle erstellt.