Module::Recursive::Requireが便利そうな件
2010年8月20日
Catalyst::Model::DynamicAdaptorのソースを見てて、見つけた。
use Module::Recursive::Require;
use MyApp::Foo;
my @required_packages = Module::Recursive::Require->new()->require_by('MyApp::Foo');
上みたいに書くとMyApp::Foo以下のモジュールが全部useできるみたいですね。
上はcpanのDESCRIPTIONを貼っただけです。
# 沢山useしないといけないヨー
use MyApp::Foo::aaa;
use MyApp::Foo::bbb;
use MyApp::Foo::ccc;
use MyApp::Foo::ddd::eee;
use MyApp::Foo::ddd::fff;
# ↑みたいに書かなくても
# ↓これだけでおk
my @required_packages = Module::Recursive::Require->new()->require_by('MyApp::Foo');
use Data::Dumper;
print Dumper \@required_packages;
# Dump結果
$VAR1 = [
'MyApp::Foo::aaa',
'MyApp::Foo::bbb',
'MyApp::Foo::ccc',
'MyApp::Foo::ddd::eee',
'MyApp::Foo::ddd::fff',
];
# newしてみる
my $object;
for $module ( @_ ) {
$object->{$module} = $module->new();
}
# 使ってみる
my $name = 'bbb';
my $data = $object->{'MyApp::Foo::'.$name}->get(); # <-適当でs
ヲレヲレフレームワークに使えそう。