Module::Starter

モジュール作ろうと思ったらノートにまだ modulemaker 入れてなかったので、Damian おすすめの Module::Starter をいれてみた。

お、これも plugin 機構もってるな

sub import {
    my $class = shift;
    my @plugins = ((@_ ? @_ : 'Module::Starter::Simple'), $class);
    my $parent;

    no strict 'refs';
    while (my $child = shift @plugins) {
        eval "require $child;"; 
        die "couldn't load plugin $child: $@" if $@;

        push @{"${child}::ISA"}, $parent if $parent;

        if ($child->can("load_plugins") and @plugins) {
            $parent->load_plugins(@plugins);
            last;
        } 
        $parent = $child;
    }
}

これもおもしろい。

Mixinじゃなくて直列つなぎなんだな。

by typester / at 2006-05-05T19:29:00 / perl / Comments(0)