delegateしたい場合どうするか

perldelegateしたい場合、Moose/Mouseをつかっていれば
hasの設定のところでhandlesを指定すればいいんですが、
Moose/Mouse使っていない場合にdelegateするときどうするのがいいのかよくわからなかったのと
暇だったのでさっくり作ってみた。


http://github.com/nekokak/p5-Method-Delegater


使い方。

package Mock;
use strict;
use warnings;
use Method::Delegater;
use Foo;

sub new {
    my $class = shift;
    bless {}, $class;
}

delegate '_foo' => install {
    initialize {
        my $self = shift;
        Foo->new($self);
    };
    handles [qw/bar baz foo/];
};

1;

delegateの設定を行うと、
bar baz fooというメソッドを呼び出すとFoo->(bar|baz|foo)が呼び出される寸法。


中途半端だし適当なんですが、どうなんだろ。

もうMoose/Mouseつかっとけって言われそうです。

Class::Delegateてのがあるのはしってるのですが、delegateするのにClass::Delegateを継承したりAUTOLOADつかってたりときにいらなかったのでした。