我收到此错误,无法理解为什么会发生这种情况。当我跳到另一个子程序时会发生这种情况。也许我需要了解一下Mojolicious为什么发生这种情况。Mojolicious:无法在未定义的值上调用方法“渲染”
这里是我的程序的源代码:
#!/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
在这种情况下,第一个和第二个示例的工作方式不同。如果'start_home'获得两个或更多参数,第一个示例将丢弃所有参数,但第二个参数将通过它们。在第一个例子中,通过“@ _”直接显示了仅在第一个参数处的示例之间的区别。 –