如何在 Perl 会话中存储数组

How to store an array in session in Perl

我在我的应用程序中使用了 Mojolicious Perl 框架。我想在会话中存储一个数组,但没有成功。

my @returnResult;
$returnResult['fn'] = $decoded->{'fn'};
$returnResult['ln'] = $decoded->{'ln'};
$self->session(returnResult => @returnResult);

请帮忙。

参见 hashes in Modern Perl and perldata

my %return_result;
$returnResult{fn} = $decoded->{fn};
$returnResult{ln} = $decoded->{ln};

my %return_result = (
    fn => $decoded->{fn},
    ln => $decoded->{ln},
);

或干脆

# http://perldoc.perl.org/perl5200delta.html#New-slice-syntax
my %return_result = %$decoded{qw(fn ln)};

您不会像在其他语言中那样获得自动引用。使用 \ operator.

$self->session(returnResult => \%return_result);