Catalyst-Runtime
view release on metacpan or search on metacpan
lib/Catalyst/Response.pm view on Meta::CPAN
Or using L<IO::File::WithPath>
my $fh = IO::File::WithPath->new($file, 'r');
And then passing the filehandle to body and setting headers, if needed.
$c->response->body($fh);
$c->response->headers->content_type('text/plain');
$c->response->headers->content_length(-s $file);
$c->response->headers->last_modified((stat($file))[9]);
L<Plack::Middleware::XSendfile> can be loaded in the application so:
__PACKAGE__->config(
psgi_middleware => [
'XSendfile',
# other middlewares here...
],
);
( run in 1.645 second using v1.01-cache-2.11-cpan-49f99fa48dc )