Я делал так (кусок из проекта):
# консолидированный отчет в excel...
# роут
get '/mreport' => sub {
my $self = shift;
...
$self->render(template => 'reports/mreport', format => 'xls');
}
...
# прописываем тип
app->types->type(xls => 'application/vnd.ms-excel; charset=utf-8');
app->start();
В итоге имеем то что вам нужно.