如何访问 Dancer2 的会话对象?

How to access Dancer2's session object?

我正在为我的网络应用程序使用 Dancer2 和 YAML 会话引擎。 我的 config.yml 包含

engines:
  session:
    YAML:
      ...
      cookie_duration: 5 minutes
      ...

我想显示类似 "Your session expires in X minutes".

的内容

如何访问此值,即如何访问我的路由中的 $session 对象?

使用DSL关键字session我只能设置和获取 任意值,如 session username => 'Bob';$username = session('username');

请注意,我对获取配置值 (settings('engines')->{session}{YAML}{cookie_duration}) 不感兴趣,因为这是我必须解析的字符串,它取决于 YAML 作为我的会话引擎。我想访问 $session->session_duration.

当您不带任何参数调用 session 时,您将取回会话对象。如果这样更容易阅读,请随意将其分配给 $session 变量。要获取到期时间,请使用 the expires method.

my $session = session;
warn $session->expires;

或更简单:

warn session->expires;