我收到此錯誤,無法理解爲什麼會發生這種情況。當我跳到另一個子程序時會發生這種情況。也許我需要了解一下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'獲得兩個或更多參數,第一個示例將丟棄所有參數,但第二個參數將通過它們。在第一個例子中,通過「@ _」直接顯示了僅在第一個參數處的示例之間的區別。 –