我定义了一个Mojolicious桥梁
my $foo = $route->bridge('/')->to(cb => sub {
my $self = shift;
return 1;
});
return $foo;
我正在定义这样的路线
$foo->route('/')->to(
module => 'test',
controller => 'test',
action => 'test'
);
$foo->route('/login')->to(
module => 'test1',
controller => 'test1',
action => 'test1'
);
启动应用后,会收到错误消息 子程序“Mojolicious :: Routes :: Route :: AUTOLOAD”在/usr/local/share/perl5/Mojolicious/Routes/Route.pm第23行进行深度递归。
我不知道这里发生了什么。任何人都可以帮助我。
谢谢!
答案 0 :(得分:1)
您可以做的一件事就是重新定义AUTOLOAD子以捕获跟踪,如下所示:
{ no warnings 'redefine';
my $old_autoload = *Mojolicious::Routes::Route::AUTOLOAD{CODE};
*Mojolicious::Routes::Route = sub {
Carp::cluck( "Trace from $Mojolicious::Routes::Route::AUTOLOAD\n - " );
goto &$old_autoload;
};
}
这至少会为您提供问题的名称和路径。你也可以在那里放一些递归跟踪,虽然它可能需要弄乱goto
留下的小占用空间。