如何将函数返回值从引用转换为数组?

rsk*_*rsk 3 arrays perl reference

我在Perl中有这个代码:

sub f {
    return [1,2,3]
}

print f;
Run Code Online (Sandbox Code Playgroud)

该函数f返回对数组的引用,如何在没有附加变量的情况下将返回值转换为数组,就像这里一样?

sub f {
    return [1,2,3]
}

$a = f;
print @$a;
Run Code Online (Sandbox Code Playgroud)

bri*_*foy 10

你只是想这样做吗?

print @{ f() };
Run Code Online (Sandbox Code Playgroud)

您可以取消引用任何返回引用的内容.它不一定是变量.它甚至可以是很多代码:

print @{ @a = grep { $_ % 2 } 0 .. 10; \@a };
Run Code Online (Sandbox Code Playgroud)

Perl v5.20添加了一个实验后取消引用:

print f()->@*
Run Code Online (Sandbox Code Playgroud)