# NAME

Plack::Middleware::Scope::Container - per-request container 

# SYNOPSIS

    use Plack::Builder;
    

    builder {
        enable "Plack::Middleware::Scope::Container";
        $app
    };
    

    # in your application
    package MyApp;

    use Scope::Container;

    sub getdb {
        if ( my $dbh = scope_container('db') ) {
            return $dbh;
        } else {
            my $dbh = DBI->connect(...);
            scope_container('db', $dbh)
            return $dbh;
        }
    }

    sub app {
      my $env = shift;
      getdb(); # do connect
      getdb(); # from container
      getdb(); # from container
      return [ '200', [] ["OK"]];
      # disconnect from db at end of request
    }

# DESCRIPTION

Plack::Middleware::Scope::Container and [Scope::Container](http://search.cpan.org/perldoc?Scope::Container) work like mod\_perl's pnotes.
It gives a per-request container to your application.

# AUTHOR

Masahiro Nagano <kazeburo {at} gmail.com>

# SEE ALSO

[Scope::Container](http://search.cpan.org/perldoc?Scope::Container), [Plack::Middleware::Scope::Session](http://search.cpan.org/perldoc?Plack::Middleware::Scope::Session)

# LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.