Обновление: Основываясь на вашем ответе на мое предыдущее предложение, я решил укусить пулю и посмотреть на документы Catalyst. Мне кажется, место для этого:
sub end : Private {
my ( $self, $c ) = @_;
# handle errors etc.
if ( $c->res->body ) {
if ( "some condition" ) {
set_default_response_headers( $c->response->headers );
return;
}
else {
do_something_else();
return;
}
}
$c->forward( 'MyApp::View::TT' ); # render template
}
Предыдущий ответ: Я не использую Catalyst, но не могли бы вы просто написать подпрограмму для своего приложения?
sub set_default_response_headers {
my ($h) = @_;
$h->last_modified(time);
$h->expires(time + $self->{cache_time});
$h->header(cache_control => "public, max-age=$self->{cache_time}");
return $h;
}
Позвонить с set_default_response_headers( $c->response->headers )
.