3

私はmojolicious::liteを学んでいます。

ルーターでは、パラメーターをコントローラーに委譲し、次のコードを使用してください:

get '/hello/:name' => sub {
  my $self = shift;
  ControllerTest::hello($self);
  };

たとえば、次のような簡単な方法があります。

get '/hello/:name' => ControllerTest::hello( shift ); #this code not work

ありがとう。

4

2 に答える 2

5

免責事項: 私は意地悪なハッカーではありません :)

'shift' は現在のコンテキスト (@_ から) からデータを取得するため、これは機能しません。最短(省略形)は次のようになると思います:

get '/hello/:name' => sub { ControllerTest::hello( shift ); };

または、サブ参照を使用することもできます:

get '/hello/:name' => \&ControllerTest::hello

次に、渡される最初の引数はhello、使用される匿名サブに渡されるすべての引数になります。私はこれを試していませんが、うまくいくと思います:)

于 2011-06-15T14:24:17.390 に答える
1

完全修飾名を使用して、メソッドとして直接呼び出すことができるはずだと思います。

get '/hello/:name' => sub { $self->ControllerTest::hello(); };
于 2011-06-15T15:37:06.777 に答える