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じゃなくて直列つなぎなんだな。