2012-08-05 7 views
6

Ich versuche, den Code wie folgt:Wie ändere ich den Rückgabewert einer Perl-Sub in eine Arrayref?

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

Die getRows ein Name Unterfunktion ist, und der Code funktioniert in Vorlage. Die $ rows sind ein Array.

Ich schreibe Code wie folgt:

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

Die $ rows ist ein REF, es ist falsch.

Wenn Schreib Code wie folgt:

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

die $ Reihen ein HASH ist, es ist falsch.

Gibt es eine Möglichkeit, die zwei Zeilencode in einem zu schreiben?

Antwort

14

Ja. Sie können

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

Die eckigen Klammern schreiben [] die gewünschte Referenz erzeugen dienen.

Verwandte Themen