else {
my $plugin = "Catalyst::Plugin::$_";
- # Plugin caller should be our application class
- eval "package $caller; require $plugin";
+ $plugin->require;
+
if ($@) {
$caller->log->error(qq/Couldn't load plugin "$plugin", "$@"/);
}
if ( my $location = $c->response->redirect ) {
$c->log->debug(qq/Redirecting to "$location"/) if $c->debug;
$c->response->header( Location => $location );
- $c->response->status(302);
+ $c->response->status(302) if $c->response->status !~ /3\d\d$/;
}
if ( $#{ $c->error } >= 0 ) {
$c->finalize_error;
}
- if ( $c->response->output ) {
+ if ( $c->response->output && !$c->response->content_length ) {
use bytes; # play safe with a utf8 aware perl
$c->response->content_length( length $c->response->output );
}