Masahiro Nagano > Scope-Container-0.04 > Scope::Container

Download:
Scope-Container-0.04.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.04   Source  

NAME ^

Scope::Container - scope based container

SYNOPSIS ^

  use Scope::Container;

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

  for (1..3) {
    my $contaier = start_scope_container();
    getdb(); # do connect
    getdb(); # from container
    getdb(); # from container
    # $container scope out and disconnect from db
  }

  getdb(); # do connect

DESCRIPTION ^

Scope::Container is scope based container for temporary items and Database Connections.

EXPORTED FUNCTION ^

my $scope_container = start_scope_container([-clear => 1]);

Initializing container. The default behavior is inherited all the previous container's data. If set -clear arguments, save previous container's data and create new data.

return values is Scope::Container object. if this object scope exits, current container will be removed, return to the previous state.

my $value = scope_container($key:Str[,$val:Any]);

getter, setter of container data.

in_scope_container

Check if context is initialized

LIMITATION ^

There is a limit to the order in which the Scope::Container object is deleted. If race condition found, remove all data.

  my $sc = start_scope_container();
  scope_container('bar', 'foo');
  my $sc2 = start_scope_container();
  scope_container('bar', 'baz');

  undef $sc;
  scope_container('bar'); #null

AUTHOR ^

Masahiro Nagano <kazeburo {at} gmail.com>

Fuji, Goro (gfx)

LICENSE ^

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

syntax highlighting: