http://search.cpan.org/~hkclark/Catalyst-Manual-5.7016/lib/Catalyst/Manual/ExtendingCatalyst.pod#Namespaces> Namespaces

While some core extensions (engines, plugins, etc.) have to be placed in the Catalyst::* namespace, the Catalyst core would like to ask developers to use the CatalystX::* namespace if possible.

When you try to put a base class for a Model, View or Controller directly under your MyApp directory as, for example, MyApp::Controller::Foo, you will have the problem that Catalyst will try to load that base class as a component of your application. The solution is simple: Use another namespace. Common ones are MyApp::Base::Controller::* or MyApp::ControllerBase::* as examples. « だそうです。→MyApp::Base::Controller::Fooですね。