Handling Exceptions in a Middleware
package MyBlog::Middleware::HandleExceptions; use parent qw(Plack::Middleware); sub call { my $self = shift; my $env = shift; my $res; eval { $res = $self->app->($env); 1; } or do { my $err = $@; my $message; if ( blessed($err) ) { $message = $err->message; } else { $message = ''.$err; } return [ 500, ['Content-Type' => 'text/plain'], ['There was an error: '.$message] ]; } return $res; }