【发布时间】:2011-04-21 12:17:04
【问题描述】:
我显然遇到了 Moose/Class::MOP 的问题(与催化剂相关)。启动我的服务器,我得到以下输出...(如下所示)
角色应用程序的别名和排除选项已在 /usr/local/lib/perl/5.10.1/Moose/Meta/Role/Application.pm 第 26 行重命名为 -alias 和 -excludes Moose::Meta::Role::Application::new('Moose::Meta::Role::Application::ToRole', 'excludes', 'ARRAY(0x9645568)') 在 /usr/local/lib/ 调用perl/5.10.1/Moose/Meta/Role.pm 第 416 行 Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x95b3368)', 'Moose::Meta::Role=HASH(0x9446d90)', '排除', 'ARRAY(0x9645568) ') 在 /usr/local/lib/perl/5.10.1/Moose/Util.pm 第 133 行调用 Moose::Util::_apply_all_roles('Moose::Meta::Role=HASH(0x9446d90)', undef, 'MooseX::Getopt', 'HASH(0x9454a08)') 在 /usr/local/lib/perl/ 调用5.10.1/Moose/Util.pm 第 87 行 Moose::Util::apply_all_roles('Moose::Meta::Role=HASH(0x9446d90)', 'MooseX::Getopt', 'HASH(0x9454a08)') 在 /usr/local/lib/perl/5.10 调用。 1/Moose/Role.pm 第 26 行 Moose::Role::with('Moose::Meta::Role=HASH(0x9446d90)', 'MooseX::Getopt', 'HASH(0x9454a08)') 在 /usr/local/lib/perl/5.10 调用。 1/Moose/Exporter.pm 第 294 行 Moose::Role::with('MooseX::Getopt', 'HASH(0x9454a08)') 在 /usr/share/perl5/Catalyst/ScriptRole.pm 第 8 行调用 需要在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 第 113 行调用的 Catalyst/ScriptRole.pm Class::MOP::__ANON__() 在 /usr/share/perl5/Try/Tiny.pm 第 71 行调用 eval {...} 在 /usr/share/perl5/Try/Tiny.pm 第 67 行调用 Try::Tiny::try('CODE(0x93c2910)', 'Try::Tiny::Catch=REF(0x93bba38)') 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 调用第 124 行 Class::MOP::load_first_existing_class('Catalyst::ScriptRole') 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 第 136 行调用 Class::MOP::load_class('Catalyst::ScriptRole', undef) 在 /usr/local/lib/perl/5.10.1/Moose/Util.pm 第 109 行调用 Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x8fc9378)', undef, 'Catalyst::ScriptRole') 在 /usr/local/lib/perl/5.10.1/Moose/Util 调用.pm 第 87 行 Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x8fc9378)', 'Catalyst::ScriptRole') 在 /usr/local/lib/perl/5.10.1/Moose.pm 第 58 行调用 Moose::with('Moose::Meta::Class=HASH(0x8fc9378)', 'Catalyst::ScriptRole') 在 /usr/local/lib/perl/5.10.1/Moose/Exporter.pm 第 294 行调用 Moose::with('Catalyst::ScriptRole') 在 /usr/share/perl5/Catalyst/Script/Server.pm 第 14 行调用 需要在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 第 113 行调用的 Catalyst/Script/Server.pm Class::MOP::__ANON__() 在 /usr/share/perl5/Try/Tiny.pm 第 71 行调用 eval {...} 在 /usr/share/perl5/Try/Tiny.pm 第 67 行调用 Try::Tiny::try('CODE(0x8f6dc38)', 'Try::Tiny::Catch=REF(0x8f8d1c8)') 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 调用第 124 行 Class::MOP::load_first_existing_class('Catalyst::Script::Server') 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 第 136 行调用 Class::MOP::load_class('Catalyst::Script::Server') 在 /usr/share/perl5/Catalyst/ScriptRunner.pm 第 18 行调用 Catalyst::ScriptRunner::run('Catalyst::ScriptRunner', 'Jamaica', 'Server') 在 script/boca_server.pl 第 8 行调用 旧的 Moose::Util::MetaRole API(0.94 版之前)已在 /usr/local/lib/perl/5.10.1/Moose/Util/MetaRole.pm 第 16 行弃用 Moose::Util::MetaRole::apply_metaclass_roles('for_class', 'Catalyst::Controller', 'metaclass_roles', 'ARRAY(0x97bdff8)', 'method_metaclass_roles', 'ARRAY(0x97ab9f0)', 'wrapped_method_metaclass_roles', 'ARRAY (0x981d650)') 在 /usr/share/perl5/MooseX/MethodAttributes.pm 第 32 行调用 MooseX::MethodAttributes::init_meta('MooseX::MethodAttributes', 'for_class', 'Catalyst::Controller', 'metaclass', undef) 在 /usr/local/lib/perl/5.10.1/Moose/Exporter 调用.pm 第 355 行 Moose::Exporter::__ANON__('MooseX::MethodAttributes') 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 Catalyst::Controller::BEGIN() 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 eval {...} 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 需要在 /usr/share/perl5/Catalyst.pm 第 16 行调用的 Catalyst/Controller.pm Catalyst::BEGIN() 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 eval {...} 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 需要在 /home/bobek/dev/build_7.2/mvc/Jamaica/script/../lib/Jamaica.pm 第 17 行调用 Catalyst.pm Jamaica::BEGIN() 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 eval {...} 在 /usr/share/perl5/Catalyst/Controller.pm 第 10 行调用 需要 Jamaica.pm 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 第 113 行调用 Class::MOP::__ANON__() 在 /usr/share/perl5/Try/Tiny.pm 第 71 行调用 eval {...} 在 /usr/share/perl5/Try/Tiny.pm 第 67 行调用 Try::Tiny::try('CODE(0x8fb3230)', 'Try::Tiny::Catch=REF(0x969fee0)') 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 调用第 124 行 Class::MOP::load_first_existing_class('Jamaica') 在 /usr/local/lib/perl/5.10.1/Class/MOP.pm 第 136 行调用 Class::MOP::load_class('Jamaica') 在 /usr/share/perl5/Catalyst/ScriptRole.pm 第 61 行调用 Catalyst::ScriptRole::_run_application('Catalyst::Script::Server=HASH(0x969d748)') 在 /usr/share/perl5/Catalyst/Script/Server.pm 第 181 行调用 Catalyst::Script::Server::run('Catalyst::Script::Server=HASH(0x969d748)') 在 /usr/local/lib/perl/5.10.1/Class/MOP/Method/Wrapped.pm 调用第 48 行 Class::MOP::Method::Wrapped::__ANON__('Catalyst::Script::Server=HASH(0x969d748)') 在 /usr/local/lib/perl/5.10.1/Class/MOP/Method/ 调用Wrapped.pm 第 89 行 Catalyst::Script::Server::run('Catalyst::Script::Server=HASH(0x969d748)') 在 /usr/share/perl5/Catalyst/ScriptRunner.pm 第 20 行调用 Catalyst::ScriptRunner::run('Catalyst::ScriptRunner', 'Jamaica', 'Server') 在 script/boca_server.pl 第 8 行调用
我是 Catalyst 的新手(我很喜欢它,我只是想成功启动并运行它)。我检查了 Moose 和 Class::MOP 的最新版本,它们是最新的(就 CPAN 而言)。
希望熟悉 Moose 的人以前见过这个。任何建议或开始检查的地方将不胜感激。
米歇尔 B.
【问题讨论】:
-
可以发一下
boca_server.pl的相关部分吗? -
谢谢埃里克。第八行 .... Catalyst::ScriptRunner->run('Boca', 'Server'); Catalyst 创建自动创建这个。 :-)
-
您如何安装 Moose 和 Catalyst?安装时应该有关于版本不兼容的警告。
-
感谢以太!我只是通过 CPAN 做了一个简单的安装。不过没有警告。
-
对于这个特定问题,我们未能在一个 Moose 版本的 Makefile.PL 中提供正确的警告。很有可能没有。