このエラーが発生しており、なぜこのようなことが起こるのか理解できません。私は別のサブルーチンにジャンプするときに起こります。おそらく、なぜこれが起こるのかについてMojoliciousについて理解する必要があるものがあります。ここでMojolicious:定義されていない値でメソッド "render"を呼び出すことができません。
は私のプログラムのソースコードです:
#!/usr/bin/perl
use Mojolicious::Lite;
get '/' => sub { &start_home; };
app->start;
sub start_home {
my $d = shift;
my $something = $d->param('something');
### Do things with $something.... etc.. etc..
&go_somewhere_else; ### Go somewhere else
}
sub go_somewhere_else {
my $c = shift;
$c->render(text => "Hello World!");
### End of program
}
私はレンダラに上の値を渡していますし、価値がある - それはなぜそれが定義されていないと言うでしょうか?私が理解していることは、サブルーチンにジャンプして出力をレンダリングしようとする場合にのみ、これが起こることです。
私のオペレーティングシステムはWindowsで、私はStrawberry Perlを使用しています。
@Eugen編集が正しくありません。その最初のコードブロックの全体的な考え方は、関数内で '@ _ 'が空であるため、それを渡す必要は全くありません。私は以下の段落でそれを説明します。私はあなたの編集をロールバックしました。 – simbabque
この場合、1番目と2番目の例は異なった動作をします。 'start_home'が2つ以上の引数を取得した場合、最初の例はそれらをすべて破棄しますが、2番目の例はそれらを通過します。最初の例で '@ _ 'を通すと、最初の引数でのみ例の違いが明示的に示されます。 –