The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Scope::Session - a scope based object note and option store

VERSION

Version 0.02

SYNOPSIS

Scope::Session is a Scope lifetime object store , which can use as a replacement of Apache::Request::Util::pnotes.

    use Scope::Session;

    Scope::Session::start {
        my $session = shift;
        $session->notes( $key => $value );
        # your great code.
        #
    };

METHODS

start

get a block and start session

get_instance

get_instance returns instance of Scope::Session. It is unique in the block called at Scope::Session::start.

    use Scope::Session;
    
    Scope::Session::start {
        my $session  = Scope::Session->get_instance;
    };

set_option

to set a session unique option value

    Scope::Session->set_option( KEY => VALUE )
    

get_option

to get a session unique option value

    Scope::Session->get_option( KEY );

notes

AS SETTER
    Scope::Session->notes( KEY => VALUE );
AS GETTER
    Scope::Session->notes( KEY );
AS ACCESSOR OF NOTE
    Scope::Session->notes->set( KEY => VALUE );
    Scope::Session->notes->get( KEY );
    Scope::Session->notes->exists( KEY );

add_error_handler($error_class,$handler)

push error handler

    Scope::Session::start {
        Scope::Session->add_error_handler( 'Error::DB::Refused' ,sub {
            # log it
        });

        # ...
        
        die with Error::DB::Refused;
    }

is_started

if in a scope session, return true value.

    Scope::Session::start {
        Scope::Session->is_started ; # 1 
    };

    Scope::Session->is_started ; # 0

AUTHOR

Daichi Hiroki, <hirokidaichi<AT>gmail.com>

LICENSE AND COPYRIGHT

Copyright 2009 Daichi Hiroki.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.