Ubuntu Manpages

Object::Container::ja

XXXXXXXXXXXXXXXXXXXXXX

    use Object::Container;
    ## OO XXXXXXX
    # XXX
    my $container = Object::Container->new;
    
    # XXXXXX
    $container->register('HTML::TreeBuilder');
    
    # XXXXXXXXXXXXXXXXX
    $container->register('WWW::Mechanize', sub {
        my $mech = WWW::Mechanize->new( stack_depth => 1 );
        $mech->agent_alias('Windows IE 6');
        return $mech;
    });
    
    # XXXXXXXXXXXXX
    my $mech = $container->get('WWW::Mechanize');
    
    ## SingletonXXXXXXX
    my $container = Object::Container->instance;
    
    # SingletonXXXXXXXXXXXregister/getXXXXXXXXXXXXXXX
    Object::Container->register('WWW::Mechanize');
    my $mech = Object::Container->get('WWW::Mechanize');
    
    # SingletonXXXXXXXXgetXXXXXXXXXXXXXXXXXX
    use Object::Container 'container';
    container->register('WWW::Mechanize');
    my $mech = container->get('WWW::Mechanize');
    my $mech = container('WWW::Mechanize'); # save as above
    
    # SingletonXXXXXXXXXXXXXX
    package MyObj;
    use Object::Container '-base';
    
    register 'ua' => sub { LWP::UserAgent->new };

Object::Container X Singleton XXXXXXXXOO XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXClass::Singleton XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Singleton XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXX Object::Registrar XXXXXXXXXXXXXXXXOOXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (XXXXXXXXXXXXXXX

XXXXXXXX OO XXXXXXXXX Singleton XXXXXXXXXXXXXXXXXXXXXXXXXX

OOXXXXXXXX

    my $container = Object::Container->new;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXX

    my $container1 = Object::Container->new;
    my $container2 = Object::Container->new;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

SingletonXXXXXXXX

    my $container = Object::Container->instance;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

SingletonXXXXXXXXXXXXXXXXregister X get XXXXX

    Object::Container->register('WWW::Mechanize', sub { WWW::Mechanize->new( stack_depth => 1 ) });

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXSingletonXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    MyContainer1->get('WWW::Mechanize');
    MyContainer2->get('WWW::Mechanize');

XXXXXXXX

SingletonXXXXXXXXXXXXX

    MyContainer->get('WWW::Mechanize');

XXXXXXXXXXXXXXXXXXXXXXXXXXXXEXPORTXXXXXXXXXXXXXXX

    use MyContainer 'obj';

XXuse XXXXXXXXXXXXXXXXXXXXXXXX

    obj->register( mech => sub { WWW::Mechanize->new });
    obj->get('mech');
    obj('mech');      # shortcut to obj->get('mech')

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

SingletonXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    __PACKAGE__->register( mech => sub { WWW::Mechanize->new } );

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXX

    use base 'Object::Container';

XXXXXXX

    use Object::Container '-base';

XXXX register XXXXXXXXXXXXXXXXXXXXXXXXX "__PACKAGE__->register" XXXXX

    register mech => sub { WWW::Mechanize->new };

XXXXXXXXXXXXXXXXX

XXXXXXXXXXX

registerXXXXXXXXXXXXXXXXXXXXX get XXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->register('WWW::Mechanize', sub { WWW::Mechanize->new }); # XXX WWW::Mechanize->new XXXXXXX
    my $mech = Object::Container->get('WWW::Mechanize'); # XXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XX Singleton XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXHTTP::Cookies XXXXXXXXXXX LWP::UserAgent XXXXXXXXXXXXXX

    Object::Container->register('HTTP::Cookies', sub { HTTP::Cookies->new( file => '/path/to/cookie.dat' ) });
    Object::Container->register('LWP::UserAgent', sub {
        my $cookies = Object::Container->get('HTTP::Cookies');
        LWP::UserAgent->new( cookie_jar => $cookies );
    });

XXXXXXXXXXXXXXX get XXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXX

    my $ua = Object::Container->get('LWP::UserAgent');

XXXXX LWP::UserAgent X HTTP::Cookies XXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->register({ class => 'LWP::UserAgent', preload => 1 });

initializer XXXXXXXXXXXXXXXXXX

    Object::Container->register({ class => 'WWW::Mechanize', initializer => sub {
        my $mech = WWW::Mechanize->new( stack_depth );
        $mech->agent_alias('Windows IE 6');
        return $mech;
    }, preload => 1 });

XXXXXXXXXXXXXXXXXXX

    Object::Container->register('WWW::Mechanize', sub {
        my $mech = WWW::Mechanize->new( stack_depth );
        $mech->agent_alias('Windows IE 6');
        return $mech;
    });
    Object::Container->get('WWW::Mechanize');

args XXXXXXXXXXXXX:

    Object::Container->register({ class => 'LWP::UserAgent', args => \@args, preload => 1 });

XXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->register('LWP::UserAgent', @args);
    Object::Container->get('LWP::UserAgent');

register( $class_or_name, $initialize_code )

Object::Container XXXXXXXXXXXXXX

XXXXXXXXXXXXX

    Object::Container->register('WWW::Mechanize');

XXXXXXXXXXXXXXXXXXXXXXXXXX get XXXXX WWW::Mechanize->new XXXXXXXXXXXX

new XXXXXXXXXXXX

    Object::Container->register('WWW::Mechanize', @constructor_args);

XXXXXXXXXXXXXXXXXXXXXXXXXXX new XXXXXXXX

new XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->register('WWW::Mechanize', sub {
        my $mech = WWW::Mechanize->new( stack_depth );
        $mech->agent_alias('Windows IE 6');
        return $mech;
    });

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->register('ua1', sub { LWP::UserAgent->new });
    Object::Container->register('ua2', sub { LWP::UserAgent->new });

XXXXXXXXXXXXXXX

registerXXXXXXXXXXXXXXXXXXXXXX

XXXXXXregisterXXXXXXXXXXXXXXXXXXXXXX

$class XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX use XXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXgetXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Copy-On-Write" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->load_all;

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Object::Container->load_all_except(qw/Foo Bar/);

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX Foo X Bar XXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    package MyContainer;
    use strict;
    use warnings;
    use Object::Container '-base';

XXXXXX Object::Container XXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

register( $class_or_name, $initialize_code )

    register Foo => sub {
        my ($self) = @_;
        $self->ensure_class_loaded('Foo');
        Foo->new;
    };

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "register" XXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXX "load_all"X"load_all_except" XXXXXXXXXXXXXXXXXXXXX "preload_all" X "load_all" XX"preload_all_except" X "load_all_except" XXXXXXXXXXXXX

Class::Singleton, Object::Registrar.

Daisuke Murase <typester@cpan.org>

Copyright (c) 2009 by KAYAC Inc.

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

The full text of the license can be found in the LICENSE file included with this module.