Meeting: Tuesday 18th of January

perl at gorwits.me.uk perl at gorwits.me.uk
Tue Jan 18 22:28:34 PST 2011


On 18/01/2011 17:57, Andy Selby wrote:
> just to remind everyone, this is tonight!

Thanks all, for another fun and interesting social meeting :)

I mentioned setting up a plugin system to load at runtime a library
(e.g. what DBI does when you call connect with a DSN - it is loading
the MySQL/Pg/SQLite/etc driver, which implements a predefined API).

Moose users can deploy MooseX::Object::Pluggable to achieve this.

However for simple uses the code is not complex. In one of my
modules I have a "transport" which can be SSH, Telnet, Serial Line, etc:

sub BUILD {
    my ($self, $params) = @_;

    use Moose::Util;
    Moose::Util::apply_all_roles($self,
        'Net::Appliance::Session::Transport::'. $self->transport);
}

The above code takes the name of the transport, provided by the user
in the {transport => 'Foo'} parameter to new(). It then composes the
role onto the current *instance*. We assume the transport provides
some predefined API to the application.

HTH!

regards,
oliver.


More information about the MiltonKeynes-pm mailing list