Plack::Middleware - Base class for easy-to-use PSGI middleware
package Plack::Middleware::Foo; use parent qw( Plack::Middleware ); sub call { my($self, $env) = @_; # Do something with $env # $self->app is the original app my $res = $self->app->($env); # Do something with $res return $res; } # then in app.psgi use Plack::Builder; my $app = sub { ... } # as usual builder { enable "Plack::Middleware::Foo"; enable "Plack::Middleware::Bar", %options; $app; };
Plack::Middleware is an utility base class to write PSGI middleware. All you have to do is to inherit from Plack::Middleware and then implement the callback call method (or to_app method that would return the PSGI code reference) to do the actual work. You can use $self->app to call the original (wrapped) application.
call
to_app
$self->app
See Plack::Builder how to actually enable middlewares in your .psgi application file using the DSL. If you do not like our builder DSL, you can also use wrap method to wrap your application with a middleware:
wrap
use Plack::Middleware::Foo; my $app = sub { ... }; $app = Plack::Middleware::Foo->wrap($app, %options); $app = Plack::Middleware::Bar->wrap($app, %options);
Plack Plack::Builder
To install Plack, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Plack
CPAN shell
perl -MCPAN -e shell install Plack
For more information on module installation, please visit the detailed CPAN module installation guide.