我正在学习mojolicious :: lite。
在路由器中,将参数委托给控制器,使用此代码确定:
get '/hello/:name' => sub {
my $self = shift;
ControllerTest::hello($self);
};
是否有任何简易方法,例如:
get '/hello/:name' => ControllerTest::hello( shift ); #this code not work
感谢。
答案 0 :(得分:5)
免责声明:我不是一个愚蠢的黑客:)
这不起作用,因为'shift'从当前上下文(来自@_)中提取数据。我猜最短(短手)将是:
get '/hello/:name' => sub { ControllerTest::hello( shift ); };
或者可能使用子参考:
get '/hello/:name' => \&ControllerTest::hello
然后传递给hello
的第一个参数将是传递给所使用的匿名子的所有args。我没试过,但我怀疑它会起作用:)
答案 1 :(得分:1)
我认为您应该可以使用完全限定名称直接将其称为方法,例如
get '/hello/:name' => sub { $self->ControllerTest::hello(); };