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
ヲレヲレフレームワークに使えそう。