Search code examples
perlmojolicious

How do I turn the return value of a Perl sub into an arrayref?


I try the code like this:

my @rows = getRows($sth);
$self->stash(rows => \@rows);

The getRows is a sub function name, and the code works in template. The $rows is a Array.

I write code like this:

$self->stash(rows => \getRows($sth));

The $rows is a REF, It's wrong.

If write code like this:

$self->stash(rows => getRows($sth));

The $rows is a HASH, It's wrong.

Is there any way to write the two line code in one?


Solution

  • Yes. You can write

    $self->stash(rows => [getRows($sth)]);
    

    The square brackets [] serve to create the desired reference.