首页 > 解决方案 > perl 中的“ladder sub {...}”是什么意思?

问题描述

我正在阅读来自 github 的 tweetylicious 源代码来研究 Mojolicious 框架:

但是我对下面的代码感到困惑ladder sub ...。在 Perl 中是什么意思?它看起来不像常规的 Perl 语法。

顺便说一句,我使用 Strawberry Perl 5。

# The rest of the routes are specific to logged in users, so we
# add a ladder to make sure (instead of making sure inside each route)
ladder sub {
    my $self = shift;
    return 1 if $self->session('name');
    $self->redirect_to('/login') and return;
};

标签: perlmojolicious

解决方案


它是对被调用的子例程的调用,该子例程ladder期望将代码引用作为其第一个参数。它相当于

$tmpfunc = sub {
    my $self = shift;
    return 1 if $self->session('name');
    $self->redirect_to('/login') and return;
};
ladder($tmpfunc);

推荐阅读