Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 680
Tony Avatar asked Aug 05 '12 00:08

Tony


1 Answers

Yes. You can write

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

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

like image 111
thb Avatar answered Nov 15 '22 15:11

thb