« Catalystのclassとinstance | メイン | CGI::Application::HTTP »

Catalystのコンポーネントの読み込み

Catalystのコンポーネントの読み込みのコード(setup_components)ってけっこう凄くないっすか?

    eval "package $class;\n" . q!Module::Pluggable::Fast->import(
            name   => '_catalyst_components',
            search => [
                "$class\::Controller", "$class\::C",
                "$class\::Model",      "$class\::M",
                "$class\::View",       "$class\::V"
            ],
            callback => $callback
        );
    !;


eval 式;をつかって、現在のpackage宣言しつつ、Module::Pluggable::Fastを動かす。
tricky杉。